2016-01-20 60 views
1

我在laravel 5.2提供的AuthController中設置了一些不同的登錄邏輯。代碼是如何檢查用戶的狀態是否在laravel 5.x中處於活動狀態?

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(); 
}); 
+0

你可以發佈你的用戶遷移。你用於嘗試的邏輯是正確的,所以可能是列的類型或類似的問題。 –

+0

如果您在用戶模型上使用[軟刪除] [1],Laravel將自動爲您執行此操作。你只需要將你的'is_active'轉換爲'deleted_at'列 [1]:https://laravel.com/docs/5.2/eloquent#soft-deleting – CodePuppet

+0

@MarkDavidson這裏是用戶遷移http: //pastebin.com/0J0fw4Tp –

回答

相關問題