我想在验证中检查用户的active_status
是A
或 S
,这就是我所做的,它仅检查{{1设置为active_status
,现在我想扩展它以检查条件A
或 A
S
laravel中是否有任何内置选项可以使其工作?
答案 0 :(得分:1)
您无法使用内置的存在验证来检查一组值,因此您需要使用自定义验证扩展验证程序。
Validator::extend('exists_with_attribute', function($attribute, $value, $parameters)
{
$table = $parameters[0];
$column = $parameters[1];
$checkColumn = $parameters[2];
$checkValues = array_slice($parameters, 3);
return DB::table($table)->where($column, $value)->whereIn($checkColumn, $checkValues)->count() > 0;
});
并在验证规则中使用它
$checkUserActiveInMyPageRules = Array(
'user' => 'required|exists_with_attribute,id,active_status,A,S'
);
有关扩展验证程序功能的更多详细信息,请参阅文档:http://laravel.com/docs/4.2/validation#custom-validation-rules