我一直在寻找解决方案并来回更改我的代码,但没有任何方法可以帮助我,我老实说已经放弃了希望自己修复它。
它保留在同一页面上而不是Redirect::to('test2')
,但保留在同一页面中,当我删除else { return Redirect::to('login')
时,它会给我一个空白页面。
任何帮助都将非常感激。
这是我的用户模型文件:
protected $fillable=['email', 'password'];
protected $table = 'users';
protected $hidden = array('password', 'remember_token');
protected $primaryKey = 'id';
public static $rules = array(
'email' => 'required|email',
'password' => 'required',
);
public function getAuthIdentifier()
{
return $this->getKey();
}
public function getAuthPassword()
{
return $this->password;
}
public function getReminderEmail()
{
return $this->email;
}
这是我的路由功能:
Route::get('/login', function(){
return View::make('login');
});
Route::post('/login', function(){
$validator = Validator::make(Input::all(), User::$rules);
if ($validator->fails()) {
return Redirect::to('login')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
$userData = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
if (Auth::attempt($userData)) {
return Redirect::to('test2');
echo 'SUCCESS!';
} else {
return Redirect::to('login');
}
}
答案 0 :(得分:0)
开始时我一直在努力解决这个问题 1.如果密码栏的长度不是60,那么它就不允许您登录。<br/> 2.在通过Auth :: attempt()进行日志记录之前,尝试使用其用户名获取用户的数据 然后使用Hash :: check()比较密码 尝试一下这个
Route::post('/login', function(){
$validator = Validator::make(Input::all(), User::$rules);
if ($validator->fails()) {
return Redirect::to('login')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
$email=Input::get('email');
$user=User::where('email','=',$email)->first();
$bool=Hash::check('your password for the email',$user->password);
if(bool)
{
if (Auth::attempt(Input::only('email','password')))
{
return Redirect::to('test2');
echo 'SUCCESS!';
}else{
return Redirect::to('login');
}
}else{
return echo 'password didn't matche';
}
}