首页 > 解决方案 > 如何在 Laravel 的路线中链接雄辩的关系?

问题描述

我正在 Laravel 中创建一个应用程序,它有 3 个相互关联的模型。

我在根据 id 显示特定类别的路由中遇到问题。我喜欢这样:

Route::apiResource('/categories', 'Core\CategoryController');

Route::prefix('categories')->group(function() {
    Route::apiResource('/{category}/sub_categories', 'Core\SubCategoryController');

    Route::prefix('sub_categories')->group(function() {
        Route::apiResource('/{sub_category}/sub_sub_categories', 'Core\SubSubCategoryController');
    });
});

我能够做到http://localhost:8080/api/categories/3/sub_categories。但是,我做不到http://localhost:8080/api/categories/3/sub_categories/1/sub_sub_categories。我无法获取类别的 ID 并将其显示在 url 中。我能做的是这个->http://localhost:8080/api/categories/sub_categories/1/sub_sub_categories

那么,如何在该 URL 中显示类别的 ID?

我试过了:

Route::prefix('/{category}/sub_categories')->group(function() {
    Route::apiResource('/{sub_category}/sub_sub_categories', 'Core\SubSubCategoryController');
});

然而,这并没有按预期工作。

标签: phplaraveleloquent

解决方案


你可以这样做

Route::prefix('categories')->group(function() {
    Route::apiResource('/{category}/sub_categories/{sub_category}/sub_sub_categories', 'Core\SubSubCategoryController');
    Route::apiResource('/{category}/sub_categories', 'Core\SubCategoryController');
});

推荐阅读