我有一个名为Items的控制器和另一个名为Categories的控制器。项目可能属于不同的类别。
我所拥有的路线是
/items
/items/:item_id
/items/categories
/items/categories/:category_id这是我的routes.php
Router::connect('/items', array('controller' => 'items', 'action' => 'index');
Router::connect('/items/:item_id', array('controller' => 'items', 'action' => 'view'), array('pass' => array('item_id')), array("item_id" => "[0-9]+"));
Router::connect('/items/categories', array('controller' => 'categories', 'action' => 'index'));
Router::connect('/items/categories/:category_id', array('controller' => 'categories', 'action' => 'view', array('pass' => array('category_id')), array("category_id" => "[0-9]+"));问题是第三个路由失败,因为它路由到Items控制器,而它不应该这样做。
我如何解决这个问题?
发布于 2011-04-10 17:13:00
注意你的路线顺序...蛋糕将匹配到第一次出现的情况,因此尝试像这样使用您的路由:
Router::connect('/items', array('controller' => 'items', 'action' => 'index');
Router::connect('/items/categories', array('controller' => 'categories', 'action' => 'index'));
Router::connect('/items/categories/:category_id', array('controller' => 'categories', 'action' => 'view', array('pass' => array('category_id')), array("category_id" => "[0-9]+"));
Router::connect('/items/:item_id', array('controller' => 'items', 'action' => 'view'), array('pass' => array('item_id')), array("item_id" => "[0-9]+"));祝好运
发布于 2011-04-10 16:52:14
在您的config/routes.php中
划上一条线
Router::connect('/items/categories', array('controller' => 'categories',
'action' => 'index'));或者类似的东西。
它会将所有你/项目/类别重定向到类别控制器的索引操作。
对于管理页面(使用管理前缀的操作):
Router::connect('/items/categories', array('controller' => 'categories',
'action' => 'index','admin'=>true));https://stackoverflow.com/questions/5610673
复制相似问题