Zend Framework路由器获取/模块/ VALUE /控制器/动作

时间:2010-04-17 14:36:19

标签: zend-framework router

我一直在谷歌上搜索,我似乎找不到任何能够很好地解释ZF路由器使用的东西。我已经阅读了网站上的文档,这似乎只是谈论重新路由。

我正在尝试制作格式: / module / value / controller / action给/ module / controller / action传递值作为参数

e.g。 / store / johnsmithbigsale / home / newstuff将路由到/ store / home / newstuff传递给johnsmithbigsale作为具有隐藏命名空间的参数的值,例如STORENAME。

一些帮助会很棒!

1 个答案:

答案 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);

正则表达式路由特定于我的应用程序,但您可以看到每个匹配都可以映射到参数。