Raj*_*mar 10 php validation laravel
我想获取验证规则中传递的参数.
对于我创建的某些验证规则,我能够从验证规则中获取参数,但是对于很少的规则,它没有获取参数.
在模型中我使用以下代码:
public static $rules_sponsor_event_check = array(
'sponsor_id' => 'required',
'event_id' => 'required|event_sponsor:sponsor_id'
);
Run Code Online (Sandbox Code Playgroud)
在ValidatorServiceProvider中,我使用以下代码:
Validator::extend('event_sponsor', function ($attribute, $value, $parameters) {
$sponsor_id = Input::get($parameters[0]);
$event_sponsor = EventSponsor::whereIdAndEventId($sponsor_id, $value)->count();
if ($event_sponsor == 0) {
return false;
} else {
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
但在这里,我无法使用以下内容获得赞助商ID:
$sponsor_id = Input::get($parameters[0]);
Run Code Online (Sandbox Code Playgroud)
luk*_*ter 19
作为第4个,整个验证器将传递给您定义的闭包extends.您可以使用它来获取经过验证的所有数据:
Validator::extend('event_sponsor', function ($attribute, $value, $parameters, $validator) {
$sponsor_id = array_get($validator->getData(), $parameters[0], null);
// ...
});
Run Code Online (Sandbox Code Playgroud)
顺便说array_get一下,如果传递的输入名称不存在,我在这里使用以避免任何错误.