如果用户有softdelete属性,Auth::attempt()不起作用


Laravel 5.1 Auth::attempt() not working if User has softdelete attribute

如果用户模型上没有softdelete属性,它就会工作。下面是我的代码:

用户模式:

.....
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';
// }
.....

我已经在我的users表中设置了deleted_at TIMESTAMPactive TINYINT。如有任何帮助,不胜感激。

在我将deleted_at列的默认值设置为NULL并从上面的代码中删除'active' => 1之后,它就工作了

如果用户是softDeleted或者即使deleted_at为null,它是否不起作用?多了解一点信息就太好了。是否发生错误?

你确定deleted_at是空的吗?我们有一个类似的问题,解决方案是,我们修剪了所有列,这使deleted_at为一个非空值。