gpt4 book ai didi

cakephp - 从 url 中删除 Controller 名称对 cakephp 中的多个 Controller 不起作用

转载 作者:行者123 更新时间:2023-12-02 03:23:09 25 4
gpt4 key购买 nike

我想从 url 中删除 Controller 名称。它适用于一个 Controller ,但不适用于多个 Controller 。这是我在 Route.php 中的代码:

 Router::connect('videos/:action', array('controller' => 'videos'));
Router::connect('/:action', array('controller' => 'frontends'));

但是当我尝试访问 http://local.tbn24.dev/videos 时表明:

Error: The action videos is not defined in controller FrontendsController



这证明了上面的网址是指
Router::connect('/:action', array('controller' => 'frontends'));

我希望这个 url 到达视频 Controller 索引功能。我怎么能同时使用这两个 Route::connect()配置?

最佳答案

but when I try to access http://local.tbn24.dev/videos


没有路线
在定义的两条路由中,这条与上面的 url 不匹配,因为它只是一个路径段:
Router::connect('videos/:action', array('controller' => 'videos'));
因此,它将匹配 catch all 路由,使用 videos被解释为要寻找的 Action 。
另请注意,如果没有前导斜杠,路由将不会匹配任何请求,因为它们会 总是 以斜线开头。
只匹配 Controller 名称的路由
定义匹配的路由 /videos - 要么定义一个路由来匹配该特定字符串:
Router::connect('/videos', array('controller' => 'videos', 'action' => 'index'));
或者,定义具有限制模式的路由:
Router::connect(
'/:controller',
array('action' => 'index'),
array('controller' => 'videos|stuff'),
);
有关路线的更多信息,请查看 the documentation对于您使用的 CakePHP 版本。

关于cakephp - 从 url 中删除 Controller 名称对 cakephp 中的多个 Controller 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31916635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com