:action/*元素给出丢失的控制器错误


:action/* element is giving missing controller error

<?php
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
/**
* ...and connect the rest of 'Pages' controller's URLs.
*/
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('/blog/:action/*', array('controller' => 'posts', 'action' =>'index'));
/**
* Load all plugin routes. See the CakePlugin documentation on
* how to customize the loading of plugin routes.
*/
CakePlugin::routes();
/**
* Load the CakePHP default routes. Only remove this if you do not want to use
* the built-in default routes.
*/
require CAKE . 'Config' . DS . 'routes.php';
?>

这是我的route.php文件,当我试图访问网站/博客时,它会给我一个错误,说博客控制器丢失。但是当我改变"/blog/:action/*"到"/blog"它会工作得很好,我做错了什么?

好的,根据你的评论,试试这个

//redirects "website/items/view/1" to "website/blogs/view/1"
Router::connect('/items/:action/*', array('controller' => 'blogs'));
//redirects "/blog" to "website/items/index"
Router::connect('/blog', array('controller' => 'items', 'action' =>'index'));

但这似乎非常令人困惑?为什么将博客重定向到项目("website/blog它重定向到website/Item/index")和项目到博客("website/items/view/1它重定向到website/blog/view/1 ")?难道你不应该把这些动作改变到你想要的控制器上吗?

请阅读路由文档