在 laravel 5.2 中重定向状态为 1 和 3 的活动用户

Redirect an active user with status 1 and 3 in laravel 5.2

在我的 Laravel 5.2 项目中,我有 user table,它的状态字段有 3 个值。值是,0=不活跃,1=活跃,2=付费。登录后,我想检查用户的状态是 1 还是 3。如果他们属于状态 1 或 3,那么我需要重定向到仪表板。别的什么都没有。下面是我在 AuthController 中的 getcredential 方法。

protected function getCredentials($request) {

 return $request->only($this->loginUsername(), 'password') + ['status' => 1];
}

如何在此处查看两种状态。 提前致谢。

凭据的值不需要是静态值,您还可以提供一个 Closure,它将由用户提供者在用于检查凭据的查询中执行。

以下应该可以解决问题:

protected function getCredentials($request) {
  return $request->only($this->loginUsername(), 'password') + ['status' => function($query) {
    $query->whereIn('status', [1, 3]);
  }];
}

我找到了解决这个问题的方法。我保留了 getCredential 方法。

protected function getCredentials($request) {
    return $request->only($this->loginUsername(), 'password') +
    ['status' => 1];
}

并且我在AuthController的登录函数中写了如下代码

if($user->status == 3){
 if(Auth::attempt(['email' => $request['email'], 'password' => $request['password'], 'status' => 3,])) 
                     {

                        $fallback_url =  '/dashboard';
                        $intended_url = 
                                Redirect::intended($fallback_url)->getTargetUrl();
                        return response()->json(['auth' => true, 'intended' => $intended_url]);

                    }
  }

现在 status = 1 和 status =3 的用户可以登录仪表板。