从url中删除控制器名称对于cakephp中的多个控制器不起作用
我想从url中删除控制器名称。它适用于一个控制器,但不适用于多个控制器。下面是我在Route.php中的代码:从url中删除控制器名称对于cakephp中的多个控制器不起作用,cakephp,routes,Cakephp,Routes,我想从url中删除控制器名称。它适用于一个控制器,但不适用于多个控制器。下面是我在Route.php中的代码: Router::connect('videos/:action', array('controller' => 'videos')); Router::connect('/:action', array('controller' => 'frontends')); 但是当我尝试访问http://local.tbn24.dev/videos它显示: 错误:控制器Fro
Router::connect('videos/:action', array('controller' => 'videos'));
Router::connect('/:action', array('controller' => 'frontends'));
但是当我尝试访问http://local.tbn24.dev/videos
它显示:
错误:控制器FrontendsController中未定义动作视频
这证明了上面的url引用
Router::connect('/:action', array('controller' => 'frontends'));
我希望此url能够访问视频控制器索引功能。如何使用这两种Route::connect()
配置
但是当我尝试访问http://local.tbn24.dev/videos
这是没有出路的
在定义的两个路由中,此路由与上述url不匹配,因为它只是一个路径段:
Router::connect('videos/:action', array('controller' => 'videos'));
因此,它将匹配“一网打尽”路线,并将视频
解释为要查找的操作
还请注意,如果没有前导斜杠,路由将不匹配任何请求,因为它们总是以前导斜杠开始
仅与控制器名称匹配的路由
要定义与/videos
匹配的路由,请定义与该特定字符串匹配的路由:
Router::connect('/videos', array('controller' => 'videos', 'action' => 'index'));
或者,定义具有限制模式的路线:
Router::connect(
'/:controller',
array('action' => 'index'),
array('controller' => 'videos|stuff'),
);
有关路由的更多信息,请查看您正在使用的CakePHP版本。如何引用“控制器”=>“视频”和“操作”=>“索引”