Laravel - 在回调后在验证器中使用变量

时间:2015-04-30 18:42:13

标签: validation laravel

我正在使用这样的验证器回调:

    $user = DB::table('password_resets')->where('token', '=', $token)->first();

    $validator->after(function($validator){

        if(!$user){
            $validator->errors->add(['user', 'Uživatel pro obnovu hesla nebyl nalezen.']);
        }

        if(!$errors->has() and (time() - $user->time) > 86400){
            $validator->errors->add(['time', 'Od zažádání o resetování hesla uplynulo 24 hodin.']);
        }
    });

$ user变量可以在回调中设置,但是$ token,即route参数。有没有机会将某些内容传递给回调?

1 个答案:

答案 0 :(得分:6)

是的,您使用use关键字将变量传递给回调。

$validator->after(function($validator) use ($token)
{
    echo $token;
    if(!$user){
        $validator->errors->add(['user', 'Uživatel pro obnovu hesla nebyl nalezen.']);
    }

    if(!$errors->has() and (time() - $user->time) > 86400){
        $validator->errors->add(['time', 'Od zažádání o resetování hesla uplynulo 24 hodin.']);
    }
});