为什么验证错误不出现?

时间:2018-07-11 11:43:39

标签: laravel

我在下面具有此功能,用于更新经过身份验证的用户的电子邮件。

问题在于,如果存在验证错误,则自定义消息不会出现在视图中。

你知道为什么吗?

populate

查看:

public function updateEmail(Request $request){

    $rules = [
        'email' => 'required|email'
    ];

    $customMessages = [
        'email.required' => 'The email field is required.',
        'email.email' => 'Please insert a valid email.'
    ];

    $validator = Validator::make($request->all(), $rules, $customMessages);

    if ($validator->fails()) {
        return redirect(route('user.index', ['user' => Auth::id()]) . '#loginData');
    }

    $user = Auth::user();
    $user->email = $request->email;

    $user->save();

    Session::flash('success', 'Email updated with success.');

    return redirect(route('user.index', ['user' => Auth::id()]) . '#loginData');
}

1 个答案:

答案 0 :(得分:0)

更改此:

if ($validator->fails()) {
        return redirect(route('user.index', ['user' => Auth::id()]) . '#loginData');
    }

更改为此,以便您可以返回会话中的错误并使用{{$ errors-> first}}或通过$ errors-> all()作为$ error遍历它们的循环

if ($validator->fails()) {

    return redirect()->back()->withErrors($validator);
}

在laravel 5.6中,使用withErrors方法时,重定向后,$ errors变量将自动与您的视图共享。