如何在laravel中的闭包函数中调用laravel验证规则?

问题描述 投票:1回答:1

如果帐户(可能是电子邮件或移动设备)已通过验证码验证,我希望跳过验证码验证。

所以我写了一个闭包函数。如果会话('captcha validated_reset_account')等于用户输入的帐户,它将跳过验证码验证。

如果没有,该程序将调用laravel验证规则,如“required | captcha”(captcha'来自https://github.com/mewebstudio/captcha)。

问题是我不知道如何在闭包中调用验证规则,我尝试返回'required | captcha'但它不能按预期工作。

'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验证规则吗?

php laravel
1个回答
0
投票

你应该把闭包放在一个数组中:

'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.');
            }
        }]

请注意,我已经改变了条件。

© www.soinside.com 2019 - 2024. All rights reserved.