Я использую Laravel 5.4 для проекта и сценарий, если user
не имеет никакого clubs
создал тогда при входе в систему редирект user
в clubs/create
стр.
Ниже приведена моя кодировка страницы маршрута
структура каталогов 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', 'ClubsController@showCreateOrganiser')->name('clubs.showCreateOrganiser');
/*
* Specific Club
*/
Route::group(['prefix' => 'clubs/{club}'], function () {
// Access
Route::get('login-as', 'ClubsController@loginAs')->name('clubs.login-as');
});
//For when admin is logged in as user from backend
Route::get('logout-as', 'ClubsController@logoutAs')->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
,
Что я делаю здесь не так?
потому что когда его перенаправят на создание страницы, Middleware снова будет работать! и он проверит клубы и снова перенаправит вас на ту же страницу, и так далее.
вам нужно сделать маршрут создания из FirstRunMiddleware
объем.
Других решений пока нет …