我一直在谷歌上搜索,我似乎找不到任何能够很好地解释ZF路由器使用的东西。我已经阅读了网站上的文档,这似乎只是谈论重新路由。
我正在尝试制作格式: / module / value / controller / action给/ module / controller / action传递值作为参数
e.g。 / store / johnsmithbigsale / home / newstuff将路由到/ store / home / newstuff传递给johnsmithbigsale作为具有隐藏命名空间的参数的值,例如STORENAME。
一些帮助会很棒!
答案 0 :(得分:2)
您可以使用Zend_Controller_Router_Route将您的网址部分映射到可以通过$ this-> _getParam('varName')在控制器中使用的模块,控制器,操作和参数。您可以在application.ini文件或应用程序引导程序中定义这些路由。
// custom city route
$route = new Zend_Controller_Router_Route(
'cities/:city',
array(
'controller' => 'city',
'action' => 'view'
)
);
$this->addRoute('city', $route);
// custom buy widgets route
$route = new Zend_Controller_Router_Route_Regex(
'buy_(.+)_widgets/([0-9]+)(.*)',
array(
'controller' => 'widgets',
'action' => 'view'
),
array(
1 => 'nothing',
2 => 'widget_id',
3 => 'vars'
)
);
$this->addRoute('widgets', $route);
正则表达式路由特定于我的应用程序,但您可以看到每个匹配都可以映射到参数。