Php 如何检查用户';s状态在laravel 5.x中处于活动状态?

Php 如何检查用户';s状态在laravel 5.x中处于活动状态?,php,laravel,laravel-authorization,Php,Laravel,Laravel Authorization,我在Laravel5.2提供的AuthController中设置了一些不同的登录逻辑。代码是 protected function authenticated(Request $request) { $email = $request->input('email'); $password = $request->input('password'); if (Auth::attempt(['email' => $ema

我在Laravel5.2提供的AuthController中设置了一些不同的登录逻辑。代码是

 protected function authenticated(Request $request)
    {

        $email = $request->input('email');
        $password = $request->input('password');

        if (Auth::attempt(['email' => $email, 'password' => $password, 'is_active' => 1])) {
            return redirect()->intended('admin/dashboard');
        }

        return $this->sendFailedLoginResponse($request);
    }
代码运行良好。但问题是,当用户不处于活动状态时,它仍然会以用户身份登录。那么,如何停止使用
is_active=0
对用户进行身份验证

更新:用户迁移

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->string('email')->unique();
    $table->string('password', 60);
    $table->tinyInteger('is_active', 0);
    $table->rememberToken();
    $table->timestamps();
});

这是正确的方法:


您的方法将不起作用,因为Laravel默认的Auth::TRUMENT不会检查处于活动状态。

您可以发布您的用户迁移吗。您尝试使用的逻辑是正确的,因此可能列类型有问题或类似问题。如果您在用户模型上使用[Soft Delete][1],Laravel将自动为您执行此操作。您只需将您的
处于活动状态
转换为列[1]中的
已删除:@LionelShrestha我已编辑您的问题,以包含您上述评论中的相关代码。将来,最好在问题中添加代码,而不是注释。根据经验,用于这些类型字段的最佳字段类型应为布尔型。雄辩负责将0和1转化为谎言和真理<代码>$table->boolean('is_active')->默认值(false)虽然我同意@PatrickStephan,但您的逻辑应该是有效的。Laravel docs for也使用您的方法。我还检查了
illumb\Auth\SessionGuard.php
中的
trunt
方法,按照流程,这种方法似乎应该有效。您是否尝试过清除缓存然后重试?此方法确实调用了
lastAttempted
方法,可能那里有过时的数据?