【发布时间】:2012-07-12 23:11:41
【问题描述】:
我正在使用 PagesController(与 Cake 内置的不同),我想连接一个新路由:
Router::connect('/*', array('controller' => 'pages', 'action' => 'view'));
我真的希望 Cake 仅在所有其他(默认)路由都失败时才使用此路由。但是,我似乎无法让它与路线一起工作。我有一种预感,我需要使用自定义 CakeRoute 类,但我完全不知道如何让它做我想做的事情。
有人可以帮我解决这个问题吗?
[edit] 哦,知道我使用的是 CakePHP 2.2.0 可能会很有用
[第二次编辑] 应要求提供更多信息。 我的路由器目前看起来像这样:
Router::connect('/', array('controller' => 'pages', 'action' => 'index'));
CakePlugin::routes();
require CAKE . 'Config' . DS . 'routes.php';
Router::connect('/*', array('controller' => 'pages', 'action' => 'view'));
当我转到 /home/about 时,我得到“错误:找不到 HomeController”。 我也试过这个:
Router::connect('/', array('controller' => 'pages', 'action' => 'index'));
CakePlugin::routes();
Router::connect('/*', array('controller' => 'pages', 'action' => 'view'));
require CAKE . 'Config' . DS . 'routes.php';
但随后一切都被路由到我的页面控制器,我不希望这样。我只希望在所有其他路由都失败时使用该路由。
再次,我有一种预感,这只能通过自定义 CakeRoute 类来完成,但我不知道具体如何。
【问题讨论】:
-
hmmm 只是为了检查...该路由是 routes.php 文件中的最后一条路由吗?顺序很重要
-
是的,我也尝试过,但它根本没有被使用过。如果另一个路由找不到匹配的控制器/动作,那么它只会给我一个错误页面,而不是尝试我的后备路由。
-
您能否发布您的 routes.php 和失败的 url 示例?
-
我在开始的帖子中添加了更多信息。
标签: cakephp routes custom-routes