0

認証システムを作成しようとしていますが、唯一の問題は、間違った資格情報が使用された場合にエラーが表示されないことです。フィールドの 1 つが空の場合はエラーが表示されますが、両方に間違った情報が入力されている場合は表示されません。誰かが何が間違っているかを理解するのを手伝ってくれますか? 助けてくれてありがとう!

これが私の見解です

{{ Form::open([
        "route"=>"user/login",
        "autocomplete"=>"off"
    ]) }}

        {{ Form::label("username", "Username") }}
        {{ Form::text("username", Input::old("username"), [
            "placeholder"=>"Username"
        ]) }}

        {{ Form::label("password", "Password") }}
        {{ Form::password("password", [
            "placeholder"=>"Password"
        ]) }}

        @if($error = $errors->first("password"))
            <div class="error">
                {{ $error }}
            </div>
        @endif

        {{ Form::submit("Login") }}

    {{ Form::close() }}

ここにコントローラーがあります

<?php

use Illuminate\Support\MessageBag;

class UserController extends BaseController
{
    public function loginAction()
    {
        $errors = new MessageBag();

        if($old = Input::old("errors")) {
            $errors = $old;
        }

        $data = [
            "errors"=>$errors
        ];

        if(Input::server("REQUEST_METHOD") == "POST") {
            $validator = Validator::make(Input::all(), [
                "username"=>"required",
                "password"=>"required"
            ]);

            if($validator->passes()) {
                $credentials = [
                    "username"=>Input::get("username"),
                    "password"=>Input::get("password")
                ];

                if(Auth::attempt($credentials)) {
                    //return Redirect::route("user/login");
                    echo "login success";
                }
            } else {
                echo "Login failed";
                $data["errors"] = new MessageBag([
                    "password"=>[
                        "Username and/or password invalid."
                    ]
                ]);
                $data["username"] = Input::get("username");

                return Redirect::route("user/login")
                    ->withInput($data);
            }
        }

        return View::make("user/login", $data);
    }
}
4

1 に答える 1