找不到CakePHP路由URL!

时间:2011-03-25 15:14:04

标签: cakephp routing

我正在尝试在我的网站上进行一些自定义路由,但是在一个非常愚蠢的问题上已经停留了2天。我有以下路由配置:

Router::connect('/your-solution/add-comment/*', array('controller' => 'comments', 'action' => 'add'));
Router::connect('/admin/your-solution/add-comment/*', array('controller' => 'comments', 'action' => 'add', 'admin' => true));

问题在于,当我尝试加载使用第二条路线格式化的网址时,它会给我找不到404。 第一条规则很好。

对于这两个规则,我有一个单独的元素,其中包含一个表单,并指向在相应规则之后格式化的URL。这两个操作的唯一参数是解决方案ID,它在通配符中“包含”。

可能是什么问题?非常感谢你的帮助!

修改

我发现了另一种奇怪的行为。当我访问/admin/your-solution/add-comment/3时,它会转到该操作。但是,如果我向该链接提交表单,它会显示一个空白页面,Firebug会通知我该页面未找到。很奇怪... 此外,我有一个类似的路线来编辑评论。加载编辑表单并保存表单工作......

3 个答案:

答案 0 :(得分:6)

你好吗?

为了确切了解它为什么不起作用,请转到/app/config/core.php并寻找此行:

Configure::write('debug', 2);

并确保将值设置为“2”。这样,它将不再给你404错误,但是实际问题,因为在生产模式下(调试设置为0),所有错误都被掩盖了404错误。

让我知道!

干杯!

答案 1 :(得分:1)

在你的core.php中确保

配置:: write('Routing.prefixes',array('admin'));

在评论控制器中,确保您有

function admin_add() {...}

还可以尝试其他格式化路由语句的方法。

Router::connect('/admin/your-solution/add-comment', array('controller' => 'comments', 'action' => 'add', 'admin' => true));

您的路线顺序也很重要。你可能想检查一下。

要调试加载URL时使用的路由,请尝试将此代码添加到app_controller.php文件中。

function __construct() {
    $route = Router::currentRoute();
    pr($route);
}

这些只是一些有助于您前进的提示。

答案 2 :(得分:0)

显然,这个问题一直存在于残疾人的输入中。删除此元素后,表单会正确提交,并显示目标页面。

据我所知,如果表单中有禁用的输入,为什么表单没有提交?