Laravel“密码错误”错误消息

Dmi*_*lys 2 php laravel-5.4

我在Laravel 5.4中创建一个登录功能,当密码不正确时,我想在视图中显示错误消息。另外,我还有一条自定义消息,用于帐户批准,因此这对我来说有点困难。同时,我将这些消息放在一起,但不是很友好。如何分开?

这是我的控制器:

public function login(Request $request)
{
    // validate the form data
    $this->validate($request, [
        'email' => 'required|email|exists:users,email',
        'password' => 'required|min:6'
    ]);

    // attempt to log
    if (Auth::attempt(['approve' => '1', 'email' => $request->email, 'password' => $request->password ], $request->remember)) {

        // if successful -> redirect forward
        return redirect()->intended(route('user.overview'));
    }

    // if unsuccessful -> redirect back
    return redirect()->back()->withInput($request->only('email', 'remember'))->withErrors([
        'approve' => 'Wrong password or this account not approved yet.',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

结果,我想替换Wrong password or this account not approved yet为两个单独的消息:

如果密码错误,则显示:Password is wrong 如果帐户未批准,则显示:This account not approved yet

小智 5

您可以为每个验证规则传递自定义错误消息,您可以这样做:

    public function login(Request $request)
    {
        //Error messages
        $messages = [
            "email.required' => "Email is required",
            "email.email' => "Email is not valid",
            "email.exists' => "Email doesn't exists",
            "password.required" => "Password is required",
            "password.min" => "Password must be at least 6 characters"
        ];

        // validate the form data
        $validator = Validator::make($request->all(), [
                'email' => 'required|email|exists:users,email',
                'password' => 'required|min:6'
            ], $messages);

        if ($validator->fails()) {
            return back()->withErrors($validator)->withInput();
        } else {
            // attempt to log
            if (Auth::attempt(['approve' => '1', 'email' => $request->email, 'password' => $request->password ], $request->remember)) {
                // if successful -> redirect forward
                return redirect()->intended(route('user.overview'));
            }

            // if unsuccessful -> redirect back
            return redirect()->back()->withInput($request->only('email', 'remember'))->withErrors([
                'approve' => 'Wrong password or this account not approved yet.',
            ]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此之前,您必须包括Validator类:

use Illuminate\Support\Facades\Validator;
Run Code Online (Sandbox Code Playgroud)