在 Cake 3.0 中是否可以在路由中添加实际上不在 url 中的前缀?
Is it possible in Cake 3.0 to add a prefix in routing that isn't actually in the url?
我想要实现的是将我的烘焙控制器保留在 src/Controller/ 中,并为我的管理控制器(在 src/Controller/Admin/ 中)和我的客户控制器(在src/Controller/客户/)。我已经通过以下方式为管理员实现了这一目标:
Router::prefix('admin', function ($routes) {
$routes->fallbacks('DashedRoute');
});
但是,对于客户,我不想在 URL 中使用 /customer/。这可能吗?
例如,http://example.org/users 应该使用 src/Controller/Customer/UsersController.php
我想我解决了:
Router::prefix('admin', function ($routes) {
$routes->fallbacks('DashedRoute');
});
Router::scope('/', function ($routes) {
$routes->connect(
'/:controller/:action/*',
['prefix' => 'customer'],
['routeClass' => 'DashedRoute']
);
$routes->connect(
'/:controller/*',
['prefix' => 'customer'],
['routeClass' => 'DashedRoute']
);
});
我想要实现的是将我的烘焙控制器保留在 src/Controller/ 中,并为我的管理控制器(在 src/Controller/Admin/ 中)和我的客户控制器(在src/Controller/客户/)。我已经通过以下方式为管理员实现了这一目标:
Router::prefix('admin', function ($routes) {
$routes->fallbacks('DashedRoute');
});
但是,对于客户,我不想在 URL 中使用 /customer/。这可能吗?
例如,http://example.org/users 应该使用 src/Controller/Customer/UsersController.php
我想我解决了:
Router::prefix('admin', function ($routes) {
$routes->fallbacks('DashedRoute');
});
Router::scope('/', function ($routes) {
$routes->connect(
'/:controller/:action/*',
['prefix' => 'customer'],
['routeClass' => 'DashedRoute']
);
$routes->connect(
'/:controller/*',
['prefix' => 'customer'],
['routeClass' => 'DashedRoute']
);
});