2017-03-05 10 views
1

ちょっと私はlaravel v5.2を学んでいて、ユーザー認証システムで作業しています。ユーザーモーダルを使ってチェックすると、ログインユーザーはadminかnot.Butですを使用してログインユーザーを取得しようとします。Auth :: user()返された値は空白です。ヌルのメンバー関数isAdmin()を呼び出す

use App\User; 

Route::get('/', function() { 

    $user = Auth::user(); 

    // $user = User::find(1); 

    if($user->isAdmin()){ 
     return "Admin"; 
    } 

    return "Normal User"; 

    }); 

    Route::get('/access',['middleware'=>'role',function(){ 
    return "This is middleware"; 
    }]); 


Route::group(['middleware' => ['web']], function() { 

    Route::auth(); 
    Route::get('/home', '[email protected]'); 

}); 

答えて

0

これは、webミドルウェアが特定のルートで実行されていないためです。このミドルウェアは、セッション作成とともにすべての認証を設定する担当者であるため、webミドルウェアを使用していないルートで認証されたユーザーを取得することはありません。

それは仕方によってコールバックルートを作成するために悪い習慣だが、ちょうどこの特定のケースのために:

Route::get('/', function() { 

    $user = Auth::user(); 

    // $user = User::find(1); 

    if($user->isAdmin()){ 
     return "Admin"; 
    } 

    return "Normal User"; 

    })->middleware('web'); 
関連する問題