認証システムを作成しようとしていますが、唯一の問題は、間違った資格情報が使用された場合にエラーが表示されないことです。フィールドの 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);
}
}