我在使用Zend_Controller_Router_Route时遇到了一些问题。 我在标准模块/控制器/动作表示法中有以下URL:
模块:租金 controller:index
params:地区,城镇,区
filter_params是一些更多的分页参数和深入的东西
我想将其剥离为: http://www.mysite.com/rent/myregion/mytown/mydistrict/filter_params/filter_values/
但这些也应该有用
http://www.mysite.com/rent/myregion/mytown/filter_params/filter_values
http://www.mysite.com/rent/myregion/filter_params/filter_values
我试过这条路线
$myRoute = new Zend_Controller_Router_Route(
'rent/:region/:town/:district/*',
array(
'controller' => 'rent',
'action' => 'index'
)
);
$router->addRoute('rent', $myRoute);
这个有效: http://www.mysite.com/rent/myregion/mytown/mydistrict
这些失败
http://www.mysite.com/rent/myregion/mytown
http://www.mysite.com/rent/myregion
Action 'myregion' does not exist and was not trappend in __call()
当我有http://www.mysite.com/rent/myregion/mytown/filter_params/filter_values
这样的路线时,如何宣布其他路线以及所有其他参数会发生什么?感谢您的帮助!
答案 0 :(得分:1)
这是因为您添加了与rent/:region/:town/:district/
匹配的路由,而其他两个条件与此规则不匹配。您需要为
rent/:region/
rent/:town/
等。你可以这样做,但有问题如何知道param是城镇或地区,但可以通过添加区域和城镇到数据库并查找它们或通过添加一些额外的参数和使用正则表达式来检查。