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 TIMESTAMP 和 active TINYINT。
任何帮助将不胜感激。
已解决
在我将 deleted_at
列的默认值设置为 NULL 并从上面的代码中删除 'active' => 1
之后,它就起作用了
如果用户被软删除或者即使 deleted_at 为 null,它也不起作用吗?多一点信息会很好。是否发生错误?
您确定 deleted_at 为空吗?我们有一个类似的问题,解决方案是我们修剪所有列并将 deleted_at 变为非空值。
如果 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 TIMESTAMP 和 active TINYINT。 任何帮助将不胜感激。
已解决
在我将 deleted_at
列的默认值设置为 NULL 并从上面的代码中删除 'active' => 1
如果用户被软删除或者即使 deleted_at 为 null,它也不起作用吗?多一点信息会很好。是否发生错误?
您确定 deleted_at 为空吗?我们有一个类似的问题,解决方案是我们修剪所有列并将 deleted_at 变为非空值。