作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在请求中有以下规则:
Validator::extend('valid_date', function($attribute, $value, $parameters)
{
$pieces = explode('/', $value);
if(checkdate($pieces[1], $pieces[0], $pieces[2])) {
return true;
} else {
return false;
}
});
return [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users,email',
'dob' => 'required|regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/|valid_date',
'mobile' => 'required',
'password' => 'required|confirmed'
];
对于 dob 字段,我只希望在正则表达式检查返回 true 时运行 valid_date 规则。如果正则表达式检查返回 false 那么就没有必要进行 valid_date 检查,如果值中没有/则当它试图在/
上爆炸时会出错如果另一个规则有效,有没有办法有条件地添加规则?
最佳答案
您可以使用 sometimes()方法。
$v = Validator::make($data, [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users,email',
'dob' => 'required|regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/',
'mobile' => 'required',
'password' => 'required|confirmed'
]);
$v->sometimes('dob', 'valid_date', function($input)
{
return apply_regex($input->dob) === true;
});
valid_date
将在 apply_regex($input->dob)
为真时触发。请注意,apply_regex
如果您的自定义函数评估 dob
关于php - 如果另一个规则在 Laravel 5 中通过,如何仅运行验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30298922/
我是一名优秀的程序员,十分优秀!