2017-08-15 28 views
0

Laravel 5.4をプロジェクトに使用していて、userclubsが作成されていない場合は、userclubs/createページにリダイレクトされます。以下はLaravelルートのリダイレクトが多すぎる

ディレクトリ構造は以下routes/backend/access.php

Route::group([ 
    'prefix'  => 'access', 
    'as'   => 'access.', 
    'namespace' => 'Access', 
], function() { 

Route::group([ 
    'middleware' => ['access.routeNeedsRole:3', 'first.run'] 
], function() { 

    /* 
    * Clubs Management 
    */ 
    Route::group(['namespace' => 'Clubs'], function() { 

    Route::get('create', '[email protected]')->name('clubs.showCreateOrganiser'); 
     /* 
     * Specific Club 
     */ 
     Route::group(['prefix' => 'clubs/{club}'], function() { 

      // Access 
      Route::get('login-as', '[email protected]')->name('clubs.login-as'); 

     }); 

     //For when admin is logged in as user from backend 
     Route::get('logout-as', '[email protected]')->name('clubs.logout-as'); 


     /*Clubs CRUD*/ 
     Route::resource('clubs', 'ClubsController'); 


     //For DataTables 
     Route::post('clubs/get', 'ClubsTableController')->name('clubs.get'); 

     }); 

    }); 
}); 

である私のルートページの符号化である私のFirstRunMiddleware.phpコード

Class FirstRunMiddleware 
{ 

    public function handle($request, Closure $next) 
    { 
     if (Clubs::scope()->count() === 0) { 
      return redirect()->route('admin.access.clubs.showCreateOrganiser'); 

     } 

     $response = $next($request); 

     return $response; 
    } 
} 

あるそれはあまりにも多くの時間をリダイレクトし、私はredirected you too many timesエラーメッセージが表示されます。

私はここで間違っていますか?

答えて

2

そのページを作成するためにリダイレクトされると、ミドルウェアが再び機能します。クラブをチェックして、同じページに再度あなたをリダイレクトするなどです。

あなたはFirstRunMiddlewareスコープの作成を外す必要があります。

+0

Git it。 if条件を追加する必要があります。ありがとうございました。 –

関連する問題