Php 如何在laravel中的闭包函数中调用laravel验证规则?
如果帐户(可能是电子邮件或手机)已通过验证码验证,我希望跳过验证码验证 所以我写了一个colsure函数。如果会话(“验证码验证码重置码帐户”)等于用户输入的帐户,它将跳过验证码验证 如果没有,程序将调用类似“必需|验证码”(captcha’来自)的laravel验证规则 问题是我不知道如何在闭包中调用验证规则,我尝试返回“required | captcha”,但它没有按预期工作Php 如何在laravel中的闭包函数中调用laravel验证规则?,php,laravel,Php,Laravel,如果帐户(可能是电子邮件或手机)已通过验证码验证,我希望跳过验证码验证 所以我写了一个colsure函数。如果会话(“验证码验证码重置码帐户”)等于用户输入的帐户,它将跳过验证码验证 如果没有,程序将调用类似“必需|验证码”(captcha’来自)的laravel验证规则 问题是我不知道如何在闭包中调用验证规则,我尝试返回“required | captcha”,但它没有按预期工作 'captcha' => function($attribute, $val, $fail)use($req
'captcha' => function($attribute, $val, $fail)use($request) {
if(!empty(session('captcha_validated_reset_account'))&&session('captcha_validated_reset_account')==$request->input('account')){
return;
}else{
Rule::required... //and call a rule named 'captcha' to validate the captcha code from user input
//return 'required|captcha';
}
}
我可以在闭包函数中调用laravel验证规则吗?您应该将闭包放入数组中:
'captcha' => [ function($attribute, $val, $fail) use($request) {
if(empty(session('captcha_validated_reset_account'))
&& session('captcha_validated_reset_account') != $request->input('account')){
$fail($attribute . ' is required.');
}
}]
请注意,我已经更改了条件。看这里:您必须使用laravel 5.6+才能实现。感谢您的回复,请注意,我希望调用名为“captcha”的规则,该规则将验证用户输入的captcha代码。我不知道如何在结束时调用此规则。哦,对不起,我以为这是您正在验证的文件的名称。在这种情况下,您将需要一个自定义规则,或者从正在使用的库中扩展captcha规则,并覆盖它的
passes
方法来应用您的条件。或者检查您是否可以执行规则::captcha(function(){})代码>