我有一个叫做"Movies“的控制器,所以链接是"localhost/Movies”,如果我想通过类别名称和子类别名称创建一个路径,比如"localhost/Movies/view/id“,"localhost/Movies/view/ category /id”,那么这个控制器中就会有一些动作,比如"localhost/Movies/English/new“。
我的项目现在喜欢"localhost/English/ new“,但我想把电影放在这个路径中,使它更容易修复,如果我想创建一个新的类别,只需在我的数据库中添加一列。
谢谢
发布于 2012-10-30 05:08:47
如果我理解的话,也许可以通过为您的操作创建自定义路由:
在app/config/routes.php中:
动作控制器数组(‘Router::connect('/movies/:category/:subcategory',’=>‘
’,‘’=>‘索引’);
您可以使用以下命令检索控制器中的值:
类别回显$
->params‘’category‘;
echo $this->params‘’subcategory‘;
您还可以在食谱http://book.cakephp.org/1.3/view/945/Routes-Configuration中了解到它
发布于 2012-10-30 06:11:56
CakePHP中的默认路由如下:
mydomain/controller/action/param1/param2/param3/param4/...如果要向操作添加过滤器选项,只需向操作添加可选参数。
function index($category = null, $subcategory = null) {
if(isset($subcategory)){
//will execute if you pass both arguments
}else if(isset($category)){
//will execute if you pass one argument
}else{
//will execute if you pass no arguments
}
}编辑
在本例中,$category为param1,$subcategory为param2。重载函数可以接收1、2或无参数。例如,如果这是在ObjectsController中,则所有这些都是有效的URL:
localhost/objects/index/ //$category==null, $subcategory==null
localhost/objects/index/foods/ //$category=='foods', $subcategory==null
localhost/objects/index/foods/green/ //$category=='foods', $subcategory=='green'这使您可以在同一操作中控制多个选项。
https://stackoverflow.com/questions/13129285
复制相似问题