gpt4 book ai didi

php - 如果另一个规则在 Laravel 5 中通过,如何仅运行验证规则

转载 作者:搜寻专家 更新时间:2023-10-31 21:30:45 25 4
gpt4 key购买 nike

我在请求中有以下规则:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com