CakePHP v3.x API前缀路由
我有休闲路线:CakePHP v3.x API前缀路由,cakephp,routes,cakephp-3.0,Cakephp,Routes,Cakephp 3.0,我有休闲路线: Router::scope('/', function (RouteBuilder $routes) { Router::prefix('api', function ($routes) { $routes->extensions(['json', 'xml']); $routes->resources('JobChemicals'); $routes->fallbacks('DashedRoute'); }); Url:/api
Router::scope('/', function (RouteBuilder $routes) {
Router::prefix('api', function ($routes) {
$routes->extensions(['json', 'xml']);
$routes->resources('JobChemicals');
$routes->fallbacks('DashedRoute');
});
Url:/api/job\u chemicals/2.json-WORKSUrl:/api/job chemicals/2.json-非 找不到或无法访问操作JobChemicalsController::2()。为什么?我用的是Dashdulote而不是下划线。有什么想法吗?我知道它很小,但它让我发疯
$routes->fallbacks('DashedRoute')代码>
这只影响备用路由,而不影响对$routes->resources
的调用
资源路由默认为下划线
正如问题中所指出的那样,这项工作是有效的
同样,资源路由默认为下划线:
默认情况下,多字控制器的URL片段是控制器名称的下划线形式。例如,BlogPostsController的URL片段将是/blog_posts
可以使用“拐点”选项指定替代拐点类型:
Router::scope('/', function ($routes) {
$routes->resources('BlogPosts', [
'inflect' => 'dasherize' // Will use ``Inflector::dasherize()``
];
});
上述内容将生成类似于:/blog posts/*的URL样式
这种差异的原因是遗留的(在3.0中,下划线是所有内容的默认url屈折变化),但修复方法很简单-只需在资源调用中包含influct
选项