如何使用闭包作为验证器?

时间:2015-08-09 15:14:14

标签: validation laravel laravel-5

是否可以在Laravel中执行类似以下操作:

for (Object anObject : objectArray) {
    anObject.doStuff();
}

我想做一些简单的一次性验证。创建自定义验证是一种过度杀伤。

2 个答案:

答案 0 :(得分:1)

至少有两种选择。

  1. 通过AppServiceProvider方法{/ 1}}创建自定义规则:

    boot()

    然后,您应用以下规则:

    Validator::extend('sid', function($attribute, $value, $parameters) {
        // some custom validation logic in order to return true or false
        return $sid == 'foo';
    });
    
  2. 或者扩展return [ 'sid' => ['foo'], ]; 课程。使用此线程逐步解释:Custom validator in Laravel 5

答案 1 :(得分:0)

如果您使用的是Laravel 5.6或更高版本,则可以使用closures

要使$ input在闭包范围内可用,可以使用use关键字。

'sid' => [ function($attribute, $value, $fail) use $input {
   // your logic here
   //if that fails, so
    return $fail($attribute.' is invalid.');
 }
]