CakePHP 3 中的路由

routing in CakePHP 3

我正在开发 CakePHP 3.3

我有一些仪表板控制器,它们的名字类似于

DashboardUsersController.php, 
DashboardBusinessesController.php,
DashboardCustomersController.php, 
etc

我想映射 url 喜欢

http://example.com/dashboard/users/view/param1/param2

这将以 param1param2 作为参数调用 DashboardUsersController.php class 和 view 函数。

总之我想把urlhttp://example.com/dashboard-users/view/param改成http://example.com/dashboard/users/view/param

这种类型的映射只有在仪表板出现在域之后才会被执行,否则它将像访问 http://example.com/users/view/param1 时的默认值一样工作,将调用 UsersController.php

到目前为止我做了什么?

因为我是 CakePHP 和路由的新手,我不知道从哪里开始,因此到现在为止什么也没做。我需要你的帮助。

我想你需要的是前缀。使用前缀 dashboard 烘焙您的控制器模型。

用在你身上routes.php

use Cake\Routing\Route\DashedRoute;

Router::prefix('dashboard', function ($routes) {
    // All routes here will be prefixed with `/dashboard
    $routes->fallbacks(DashedRoute::class);
});

并从控制器中删除该仪表板部分或从您的 table 名称中删除仪表板并使用 --prefix 重新烘焙所有内容。

bin/cake bake all --prefix dashboard

这些链接会对您有所帮助

https://book.cakephp.org/3.0/en/development/routing.html#prefix-routing

https://book.cakephp.org/3.0/en/bake/usage.html