Php Laravel验证:如何在自定义验证中访问属性的规则
在下面的规则中,我有我的自定义验证Php Laravel验证:如何在自定义验证中访问属性的规则,php,validation,laravel,laravel-5,Php,Validation,Laravel,Laravel 5,在下面的规则中,我有我的自定义验证customRule:*日期* $rules = [ 'my_date' => 'required|date_format: Y-m-d|customRule: someDate', ]; 在自定义验证规则扩展中,我需要访问规则的date\u格式属性: Validator::extend('customRule', function($attribute, $value, $parameters) { $format = $attribute
customRule:*日期*
$rules = [
'my_date' => 'required|date_format: Y-m-d|customRule: someDate',
];
在自定义验证规则扩展中,我需要访问规则的date\u格式
属性:
Validator::extend('customRule', function($attribute, $value, $parameters) {
$format = $attribute->getRules()['date_format']; // I need something like this
return $format == 'Y-m-d';
});
如何在扩展验证器上获取特定属性的规则值 您无法访问其他规则。验证器应为独立单元-它们应使用的唯一数据为:
- 正在验证的字段的值
- 作为参数传递到此验证规则的值
- 正在验证的对象的其他属性的值
Validator::extend('custom_date_format', function($attribute, $value, $parameters) {
$format = $parameters[0];
$someDate = $parameters[1];
$validator = Validator::make(['value' => $value], ['value' => 'date_format:' . $format]);
//validate dateformat
if ($validator->fails()) {
return false;
}
//validate custom rule using $format and $someDate and return true if passes
});
一旦你拥有了它,你就可以这样使用它:
$rules = [
'my_date' => 'required|custom_date_format:Y-m-d,someDate',
];