2017-02-04 8 views
0

私は管理者アカウントとユーザーアカウントを持っています $ user-> activeを設定すると、オンラインユーザーが外になり、管理者アカウントからすべてのナビゲーションが即座に拒否されます。 0:オンラインユーザーをlaravelにするには5.3

$user->active = 0; 
+0

ユーザーがデフォルトでONソフトの削除を持っているコンストラクタからミドルウェアActiveComptを呼び出して、なぜ単に 'する$ user->(削除しない)'と後で気が変わったら '$ user-> restore()'? – ceejayoz

+0

私は彼のシステムから彼を外すだけのユーザーを削除しません –

答えて

0

を行うことができそうである場合:

ステップ1:ターミナル

php artisan make:middleware ActiveCompt 

ステップ2ミドルウェアを設定します。

<?php 

namespace App\Http\Middleware; 
use Auth; 
use Closure; 

class ActiveCompt 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if (Auth::check()){ 
      if ($request->user()->statut == 1) { 
       return redirect('logout'); 
      } 
     } 
     return $next($request); 
    } 
} 

ステップ3:経路の定義。 karnel.phpで

protected $routeMiddleware = [ 
. 
. 
. 
'ActiveCompt' => \App\Http\Middleware\ActiveCompt::class, 
]; 

ステップ4:

$this->middleware('ActiveCompt'); 
0

ステータスが非アクティブに変更されたら、ユーザーをログアウトしますか?

これはあなたが私がミドルウェアを使用することを決定した

public function updateUserStatus(){ 

    $user = Auth::user(); 
    $user->active = false; 
    $user->save(); 
    Auth::logout(); 

    return redirect("/home"); 
}