2015-09-14 59 views
3

如果用戶模型上沒有softdelete屬性,它就會工作。這裏是我的代碼:如果用戶具有softdelete屬性,則Laravel 5.1 Auth :: attempt()不起作用

用戶模式:

..... 
use Authenticatable, Authorizable, CanResetPassword, SoftDeletes; 
protected $dates = ['deleted_at']; 
protected $softDelete = true; 
..... 

AuthController:

........ 
$userdata = ['email' => Input::get('email'), 'password' => Input::get('password'), 'active' => 1]; 
$authRemember = (Input::get('auth_remember'))? true : false; 

// if (Auth::validate($userdata)) { 
    if (Auth::attempt($userdata, $authRemember)) { 
     echo 'success'; 
    }else{ 
     echo 'failed'; 
    } 
// }else{ 
// echo 'failed'; 
// } 
..... 

我已經設置deleted_at TIMESTAMP積極TINYINT到我的用戶表。 任何幫助,將不勝感激。

解決 後,我設置的默認值設置爲NULL的deleted_at列它的工作,並刪除'active' => 1從上面

+0

嘗試'protected $ softDelete = true;' – aldrin27

+0

@ aldrin27已經試圖添加這些代碼但仍然沒有運氣 – arhakim

+0

因此它總是返回false? – aldrin27

回答

0

的代碼,如果用戶softDeleted或者即使deleted_at爲null是否不行?多一點的信息會很好。是否發生錯誤?

你確定deleted_at爲空嗎?我們遇到了類似的問題,解決方案是我們修整了所有列,並將deleted_at帶到A不爲空的值。

+0

據我所知,MySQL默認使用TIMESTAMP格式的空列是'0000-00-00 00:00:00'。順便說一句,你會告訴我如何修剪所有列? – arhakim

+0

感謝@Gummibeer在'deleted_at'列中將默認值設置爲NULL後,它就起作用了 – arhakim

+0

樂於聽到! :)是的,我可以 - 在1小時內,如果我在工作在哪裏我有代碼。關鍵字是:保存回調,forceFill和array_map。但我會寄給你整個代碼 – Gummibeer