2014-02-06 98 views
2
Illuminate \ Database \ QueryException 
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user.deleted_at' 
in 'where clause' (SQL: select * from `user` where `user`.`deleted_at` is 
null and `username` = john limit 1) 

所以我发送以下数据到我的登录路由:username=john&password=testLaravel认证抛出奇怪的错误

但是,当我在routes.php文件执行下面的代码,我得到上述错误显示。

Route::post('login', function() 
{ 
    $credentials = array(
     "username" => Input::get("username"), 
     "password" => Input::get("password") 
    ); 

    if (Auth::attempt($credentials)) 
    { 
     return Redirect::intended('dashboard'); 
    } 
    else { 
     return Redirect::to('login'); 
    } 

}); 

困扰我的事情是,我没有deleted_at列在我的用户表,我不知道为什么laravel需要此列在我的表在所有我做的是尝试登录。

回答

2

困扰我的事情是,我没有deleted_at列在我的用户表

是,该错误信息是在抱怨这一点。

我不知道为什么laravel需要在我的表中的这一列,当我所做的所有尝试登录。

您的用户模型可能启用了soft deletion。在app/models文件夹的User.php文件中查找$softDelete文件夹,并将其设置为false,或者如果需要软删除,请添加列。

+0

那么这是否意味着当我使用迁移创建用户表时,我需要手动添加deleted_at列? – timewarper

+0

根据迁移文档,'$ table-> softDeletes();'在迁移中添加该列。 – ceejayoz

+0

好吧,看起来我需要RTFM。非常感谢。我用'$ table-> softDeletes();'添加了一个新的迁移,就像你说的那样,它工作!太感谢了! – timewarper