Php 如果用户具有softdelete属性,则Laravel 5.1 Auth::Test()不工作

Php 如果用户具有softdelete属性,则Laravel 5.1 Auth::Test()不工作,php,authentication,login,laravel-5.1,soft-delete,Php,Authentication,Login,Laravel 5.1,Soft Delete,如果用户模型上没有softdelete属性,则该选项有效。这是我的密码: 用户模型: ..... use Authenticatable, Authorizable, CanResetPassword, SoftDeletes; protected $dates = ['deleted_at']; protected $softDelete = true; ..... 授权控制器: ........ $userdata = ['email' => Input::get('email'),

如果用户模型上没有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';
// }
.....
我已经将时间戳处的已删除\u和活动TINYINT设置到我的用户表中。 任何帮助都将不胜感激

已解决
在我将
deleted_at
列的默认值设置为NULL并从上面的代码中删除
'active'=>1
后,它就工作了如果用户被软删除,或者即使删除的_at为NULL,它也不工作吗?再多了解一点就好了。是否发生错误


您确定删除的位置为空吗?我们遇到了一个类似的问题,解决方案是修剪所有列,并将删除的值设置为非空值。

Try
protected$softDelete=true
@aldrin27已经在尝试添加这些代码,但仍然没有luckSo它总是返回false?是的,它总是返回false。我还尝试删除
if(Auth::validate($userdata)){}
,但仍然不起作用谢谢你的回复,在我将
删除的
列的默认值设置为NULL后,它就起作用了。据我所知,MySQL对于带有时间戳格式的空列的默认值是
0000-00-00:00
。顺便说一句,你能告诉我如何修剪所有列吗?谢谢@Gummibeer,在我将
deleted_的
列的默认值设置为NULL后,它就可以工作了。
column高兴听到!:)是的,我可以-如果我在工作,我有代码的1小时内。关键词是:保存回调、forceFill和数组映射。但是我会把所有的代码发给你:如果这是一个解决方案,那么如果你能接受这个答案并将这个问题显示为已回答,那就太好了