Laravel 5.5路由控制器[找不到页面]

时间:2018-09-13 03:22:37

标签: php laravel

我有一个使用$router->resource([])的程序。我使用laravel-admin。

这是我的routes.php

$router->resources([
    'programs'             => ProgramController::class,
    'programs/categories'  => ProgramCategoryController::class,
]);

在我的programs上,它可以与所有crud操作一起很好地工作。

但在我的programs/categories上无法正常工作,表示找不到。 route controller是否必须使用其他url?...

我的意思是我的类别不能child来自具有不同控制器的程序吗?...

3 个答案:

答案 0 :(得分:0)

尝试将“程序/类别”更改为“ programs.categories”

答案 1 :(得分:0)

参阅https://laravel.com/docs/5.5/controllers#resource-controllers

补充资源控制器

如果您需要向资源控制器添加默认路由以外的其他路由,则应在调用Route::resource;之前定义那些路由,否则,由resource方法定义的路由可能会意外地优先于您的补充路线:

Route::get('photos/popular', 'PhotoController@method');

Route::resource('photos', 'PhotoController');

因此,在上述情况下,只需更改以下内容即可:

$router->resources([
    'programs'             => ProgramController::class,
    'programs/categories'  => ProgramCategoryController::class,
]);

对此:

$router->resources([
    'programs/categories'  => ProgramCategoryController::class,
    'programs'             => ProgramController::class,
]);

它现在运行良好,也进行了crud个操作。

这不是最佳解决方案,但对我有用。

答案 2 :(得分:0)

您要在类别资源路由中添加“程序”前缀。您可以通过如下更改代码来实现:

$router->resources([
    'programs'             => ProgramController::class,
]);



// to add programs prefix to categories routes
Route::group(['prefix' => 'programs'], function () use ($router) {
    $router->resource('categories', ProgramCategoryController::class);

    // here you can add more routes and all those routes will have 
    // "programs" prefix in there url
});
相关问题