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'
这使您可以在同一操作中控制许多选项。