0
我想做一个身份验证系统,我遇到的唯一问题是如果使用了错误的creds,它不会显示错误。它显示错误时,其中一个领域是空的,但不是当他们都充满了错误的信息。有人能帮我弄清楚什么是错的?感谢所有的帮助!Laravel 4错误通过不起作用
这是我的看法
{{ 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);
}
}
就是这样!这样做后,我还必须在'validator passes'条件末尾添加另一个'else'来解决空字段的问题。谢谢您的帮助! – zachstarnes