Php Laravel路线重定向次数太多
我将Laravel 5.4用于一个项目,如果Php Laravel路线重定向次数太多,php,laravel,laravel-5,Php,Laravel,Laravel 5,我将Laravel 5.4用于一个项目,如果用户没有创建任何俱乐部,则在登录时将用户重定向到俱乐部/创建页面 下面是我的路线页面编码 目录结构为routes/backend/access.php Route::group([ 'prefix' => 'access', 'as' => 'access.', 'namespace' => 'Access', ], function () { Route::group([
用户
没有创建任何俱乐部
,则在登录时将用户
重定向到俱乐部/创建
页面
下面是我的路线页面编码
目录结构为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
code
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;
}
}
它重定向了太多次,我收到错误消息说重定向了您太多次
我做错了什么???这是因为当它重定向到创建页面时,中间件将再次工作!它会检查俱乐部并再次将您重定向到同一页面,依此类推
您需要使创建路由脱离
FirstRunMiddleware
范围。因为当它重定向到创建页面时,中间件将再次工作!它会检查俱乐部并再次将您重定向到同一页面,依此类推
您需要在
FirstRunMiddleware
范围之外创建路由。Git it。需要添加一个if条件。谢谢,搞定了。需要添加一个if条件。非常感谢。