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

oalqel3c  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(185)

我希望跳过验证码验证,如果帐户,这可能是一个电子邮件或移动的,已验证。
所以我写了一个colsure函数,如果session('captcha_validated_reset_account')等于用户输入的帐号,它将跳过captcha验证。
如果没有,程序将调用laravel验证规则,如“必需|验证码”(“验证码”来自https://github.com/mewebstudio/captcha)。
问题是我不知道如何在闭包中调用验证规则,我尝试了return '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验证规则?

z8dt9xmd

z8dt9xmd1#

应该将闭包放入数组中:

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

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

相关问题