【问题标题】:Laravel: Creating route resource for sub directoryLaravel:为子目录创建路由资源
【发布时间】:2016-11-22 19:55:09
【问题描述】:

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

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

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

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

但是这第二个资源不起作用。当我去 www.myapp.com/parts/categories 时,我得到一个空白页。知道有什么问题吗?

【问题讨论】:

  • 尝试使用:Route::controller('/parts/categories' , 'SpCategoriesController');你的控制器上有 getIndex() 函数吗?

标签: laravel laravel-5


【解决方案1】:

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

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的特定功能,只需编写:

Route::get('/', 'SparePartsController@functionName')

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • @BitOne 太棒了!如果有帮助,请将答案标记为正确:-)
    猜你喜欢
    • 1970-01-01
    • 2015-05-23
    • 2014-02-19
    • 2021-12-02
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多