这是我的问题:
我有一个表用户:
id username email password
此外,模型用户,当涉及到注册时,一切都很好。
现在,当我想要登录时,我的视图:
@layout('main')
@section('content')
@if(Session::has('login_errors'))
<div class='alert alert-error'>Wrong ID</div>
@endif
{{Form::open('user/login', 'POST', array('class' => 'well inline-form'))}}
{{Form::token()}}
{{Form::text('username', Input::old('username'), array('class' => 'input-large', 'placeholder' => 'email'))}}
{{Form::password('password', array('class' => 'input-large', 'placeholder' => 'Mot de passe'))}}
{{Form::submit('Login', array('class'=>'btn btn-primary'))}}
{{Form::close()}}
@endsection
以下是我在控制器
中的操作public function action_login()
{
if(Auth::check()){return Redirect::to('user');}
if(Request::method() == 'POST')
{
$credentials = array('username' => Input::get('username'), 'password' => Input::get('password'));
if(Auth::attempt($credentials))
{
return Redirect::to('user');
}
else
{
return Redirect::to('user/login')->with_input()->with('login_errors', true);
}
}
Section::inject('title', 'Login');
return View::make('user.login');
}
它应该有效,但事实并非如此。
错误如下:当我点击登录按钮时,我的表单传递给我的控制器并被读取。我知道我的Input :: get('username'),Input :: get('password')是正确的,并在db中注册。
问题是:即使我的电子邮件/密码是正确的,我也无法获得Auth,而且我的消息 ID错误。我希望我很清楚...
你应该知道的事情:
我没有在配置中更改Auth.php,因此用户名是电子邮件
我在注册时使用密码哈希:'password'=&gt;散列::化妆(输入::获得( '密码'))
编辑和解决方案
好的,我明白了!
首先:
希望它能帮助某人/线程
答案 0 :(得分:0)
首先,Controller :: detect()是一种有缺陷的方法 - 并且在许多地方都提倡不采取捷径并使用该方法。指定您需要的每条路线 - 不仅更具可读性,而且更容易理解请求的内容。
如果您还没有更改auth配置,那么这应该意味着表单提供的用户名应该是某人的EMAIL,因为这是Auth将要检查的内容。所以请确保是这种情况。如果您想与用户名匹配,请务必另外设置。
此外,还需要更多信息 - 您还没有真正开始不起作用的东西,只是它不起作用。到底是什么,不起作用?请确保您遵循上述要点并且仍然无效,我们需要更多信息/代码。 Atm,您的错误报告存在缺陷。