使用 Zend 的默认路由,URL 如下所示:
www.domain.com/controller/action/key1/value1/key2/value2/key3/value3
每个键和值都作为一对存储在返回的数组中getParams();
在这个例子中:
array("key1" => "value1", "key2" => "value2", "key3" => "value3")
我希望参数 URL 看起来像:
www.domain.com/controller/action/value1/value2/value3
参数应该像这样映射到一个数组中。键应该仅取决于值在 URL 中的位置。
array(0 => "value1", 1 => "value2", 2 => "value3")
我怎样才能做到这一点?
我有同样的意图,因为我希望我的 URL 看起来像这样:
http://www.mypr.com/tours/Europe/spain/magicalJourney http://wwww.mypr.com/tours/Europe/spain/magicalJourney
我记得我还可以从 .ini 文件加载所有内容,所以我在 Bootstrap 上使用它
public function _initRouter() {
$frontController = Zend_Controller_Front::getInstance();
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini');
$router = $frontController->getRouter();
$router->addConfig($config, 'routes');
}
然后我在我的routes.ini中有这个
routes.tours.route = /tours/:group/:destination/:tour
routes.tours.defaults.module = default
routes.tours.defaults.controller = tours
routes.tours.defaults.action = handler
routes.tours.defaults.group = null
routes.tours.defaults.destination = null
routes.tours.defaults.tour = null
当你跑步时$this->_request->getParams()
在你的控制器中,这将产生类似的结果:
Array ( [group] => Europe [destination] => Spain [tour] => MagicalJourney [module] => default [controller] => tours [action] => handler )
它实际上效果很好:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)