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

Tim*_*Tim 5 php laravel

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

所以我写了一个colsure函数。如果session('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';
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在闭包函数中调用 laravel 验证规则吗?

nak*_*kov 2

您应该将闭包放入数组中:

'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.');
    }
}]
Run Code Online (Sandbox Code Playgroud)

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