laravel存在使用OR的更多列的验证

时间:2015-07-28 13:45:36

标签: validation laravel laravel-4

我想在验证中检查用户的active_statusA S,这就是我所做的,它仅检查{{1设置为active_status,现在我想扩展它以检查条件A A

S

laravel中是否有任何内置选项可以使其工作?

1 个答案:

答案 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