Laravel 5.1 Auth::attempt() 如果用户具有软删除属性则不起作用

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

如果 User 模型上没有 softdelete 属性,它就可以工作。这是我的代码:

用户模型:

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

授权控制器:

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

我已经为我的用户 table 设置了 deleted_at TIMESTAMPactive TINYINT。 任何帮助将不胜感激。

已解决 在我将 deleted_at 列的默认值设置为 NULL 并从上面的代码中删除 'active' => 1

之后,它就起作用了

如果用户被软删除或者即使 deleted_at 为 null,它也不起作用吗?多一点信息会很好。是否发生错误?

您确定 deleted_at 为空吗?我们有一个类似的问题,解决方案是我们修剪所有列并将 deleted_at 变为非空值。