Laravel:为子目录创建路由资源

时间:2016-11-22 19:55:09

标签: laravel laravel-5

我是laravel的新手并且创建了一个备件维护应用程序。 我使用以下方法为备件创建了路径资源:

Route::resource('/parts' , 'SparePartsController');

这很好用。 后来我还想为备件类别创建另一个路径资源。所以我创建了控制器并使用了:

Route::resource('/parts/categories' , 'SpCategoriesController');

但是这第二个资源不会起作用。当我访问www.myapp.com/parts/categories时,我得到一个空白页面。有什么想法错了吗?

2 个答案:

答案 0 :(得分:0)

尝试使用前缀对路由进行分组,例如:

Route::group(['prefix' => 'parts'], function(){

    Route::get('/', 'SparePartsController');
    Route::get('/categories', 'SpCategoriesController');
});

这会将来自/ parts的所有流量路由到SparePartsController,而/ parts / categories将调用SpCategoriesController

查看文档以获取更多信息: https://laravel.com/docs/5.3/routing#route-groups

如果你想调用Controller的特定功能,只需写:

路由:: get(' /',' SparePartsController @ functionName')

答案 1 :(得分:0)

SpCategoriesController资源路由不起作用,因为SparePartsController资源路由优先于它。

要解决此问题,请按以下顺序放置路线:

Route::resource('/parts/categories' , 'SpCategoriesController');
Route::resource('/parts' , 'SparePartsController')

参考:https://laravel.com/docs/5.3/controllers#restful-supplementing-resource-controllers