我正在使用Cakephp 2.0开发的CMS有两个主要的控制器:
我正在尝试将 route.php 设置为具有以下行为:
如果用户请求页面,则网址应为:
http://www.something.com/pages-alias/article-name/id/whatever
如果用户地址为类别,则网址应为:
http://www.something.com/categories-alias/category-name/id/whatever
请注意以下类别和页面我使用过“别名”。 为了澄清一个例子,本地餐馆网站的URL将是:
http://www.something.com/course/wild-boar/68/2013-07-18
“课程”将取代“页面”。和
http://www.something.com/menu/valentine-day/8/2014-01-30
“menu”将替换“category”。
不应在URL和路由规则中说明视图。
在进行一些内部检查(具有子类别,只有一页或多页,等等)后,两种情况都会由控制器自动选择视图,以便控制器覆盖这些视图。
我有一些关于使用排序“别名”来构建路由规则的线索,但不幸的是,文档对于如何管理对象以创建我自己的自定义路由不够清楚。
那么,是否有人尝试使用与CakePhP 2.x文档中提供的示例不同的示例来解释它?
提前感谢任何有帮助的人。 作为参考,我将在此处粘贴我已阅读过的链接:
答案 0 :(得分:1)
这就是你想要的:
Router::connect(
'/:category_alias/:category_name/:id/:whatever',
array('controller' => 'Article', 'action' => 'view'),
array('pass' => array('category_alias','category_name','id','whatever'),
'id' => '[0-9]+')
);
ofc您可以删除此验证码以获取ID ..或添加更多验证器:)
然后您可以使用ArticleController.php
public function view($category_alias, $category_name, $id, $whatever) {}