Laravel 5路由::组多个控制器问题


Laravel 5 route::group more than one controller issue

我是Laravel的新手。我有这样的网址example.com/admin,一切都很好。但是当我想在管理中创建一个像example.com/admin/users这样的路由时,我就有问题了。我的路线是这样的:

Route::group(['namespace' => 'Admin'], function() { Route::resource('admin', 'AdminController'); Route::resource('admin/users', 'UsersController'); });

所以我通过artisan命令工具生成了控制器,如果我试图加载../admin/create,它可以工作,但如果我尝试加载.../admin/users,它会显示一个空白页面,但最奇怪的部分是.../admin/users/create可以工作。

我是拉拉维尔的新手,所以也许我对路线的理解是错误的,我不能像现在这样做。提前谢谢。

Laravel路由就像贪婪匹配一样工作。在你的路线文件中,如果你有两条这样的路线

Route::group(['namespace' => 'Admin'], function() {
    Route::resource('admin', 'AdminController');
    Route::resource('admin/users', 'UsersController');
});

适用于admin/users等URL的Laravel路由器,它将与admin路由匹配。

因此,Laravel路由的一个好技巧是在按降序排列The url has most backslashes value您在最上面的路由文件&然后减少。

Route::group(['namespace' => 'Admin'], function() {
    Route::resource('admin/users/**/**', '**');
    Route::resource('admin/users/****', '***');
    Route::resource('admin/users', 'UsersController');
    Route::resource('admin', 'AdminController');
});

所以这里你的解决方案是,把你的第二条路线&第一个下降

Route::group(['namespace' => 'Admin'], function() {
    Route::resource('admin/users', 'UsersController');
    Route::resource('admin', 'AdminController');
});