CakePHP3中的嵌套REST路由和子名称空间

CakePHP3中的嵌套REST路由和子名称空间,rest,cakephp-3.0,Rest,Cakephp 3.0,在CakePHP3中,rest路由不调用子名称空间中的类。例如,路由“posts/2/comments/10”调用App\Controller\CommentsController。我想让它调用App\Controller\Posts\commentscocontroller,因为评论并不总是针对帖子 以下是我的解决方案: $routes->resources('Posts'); Router::scope('/posts/:post_id/',['post_id'=>'

在CakePHP3中,rest路由不调用子名称空间中的类。例如,路由“posts/2/comments/10”调用App\Controller\CommentsController。我想让它调用App\Controller\Posts\commentscocontroller,因为评论并不总是针对帖子

以下是我的解决方案:

    $routes->resources('Posts');  
Router::scope('/posts/:post_id/',['post_id'=>'[0-9]+','prefix'=>'posts'], function($routes){
    $routes->resources('Comments');
});    
这很好,但我不知道这是否是一个好的做法


如果要按命名空间对控制器进行分组,请使用
Router::prefix()
$routes->prefix()
而不是
$routes->scope()