尝试使用测试API。根据以下路由设置,如果我请求/v1/tests/index.json
,我将按预期获得JSON对象响应,但如果我请求/v1/test/index.json
,我将收到TestController丢失的错误。我检查了文档,我似乎无法弄清楚出了什么问题。我希望$routes->connect('/test', [...]);
可以正常工作,但事实并非如此。任何帮助照亮这一点的人都会受到赞赏。
<?php
use Cake\Core\Plugin;
use Cake\Routing\RouteBuilder;
use Cake\Routing\Router;
Router::defaultRouteClass('DashedRoute');
Router::extensions(['json', 'xml']);
Router::scope('/', function (RouteBuilder $routes) {
$routes->prefix('v1', function (RouteBuilder $routes) {
$routes->connect('/test', ['controller' => 'Tests', 'action' => 'index']);
$routes->fallbacks('InflectedRoute');
});
$routes->fallbacks('DashedRoute');
});
Plugin::routes();
答案 0 :(得分:2)
没有明确的路线设置匹配/v1/test/index.json
。您的:
$routes->connect('/test', ['controller' => 'Tests', 'action' => 'index']);
路线将匹配/v1/test
或/v1/test.json|xml
,而这就是全部。
/v1/test/index.json
将被后备路由捕获,因此尝试连接到匹配test
的控制器,即TestController
。
更仔细地查看 Cookbook > Routing > Connecting Routes ,您正在执行/government
示例中显示的内容。
答案 1 :(得分:1)
您是否尝试在路由连接中指定操作?
$routes->connect('/test/index', ['controller' => 'Tests', 'action' => 'index']);