我试图设置以下路由在CakePHP 2.3:cakePHP路径元素指向缺少控制器操作?
域/新闻/塞
我已经按照时生成正确的cookbook guidelines on routing和路线。我遇到的问题是,当选择链接时,我得到'在NewsController中缺少方法'错误消息。
下面是我配置了什么:
Router::connect(
'/news/:slug/',
array('controller' => 'news', 'action' => 'view'),
array(
'pass' => array('slug'),
'slug' => '[^_]+'
)
);
我传递的塞用正则表达式(不包括下划线的任何字符串)。
这是我在索引页面链接:
<?php echo $this->Html->link(
$news['News']['title'],
array(
'controller' => 'news',
'action' => 'view',
'slug' => $news['News']['slug']
)
); ?>
如前所述,正确的网址建成,看起来是这样的:/新闻/测试鼻涕虫新闻故事
但是,当我点击它我得到'NewsController中的失踪方法'错误消息
这是显而易见的,我失踪了,因为我看了这个太长,无法看到它。
谢谢,保罗
我会使用白名单,而不是匹配蛞蝓黑名单。 –
感谢马丁,这是否等于白名单,'[a-zA-Z0-9 _-] +' – Paul
它会的,是的。因为你指定哪些字符*应该*在模式中,而不是哪些字符*不应该是(这可能导致错误,在你忘记黑名单的情况下)。过于谨慎比不谨慎更好。 –