如何在zend框架URL中创建可选参数

时间:2013-06-13 11:09:57

标签: zend-framework routes

我是Zend的新手,但非常热衷于学习。这实际上只是关于Zend Framework中路由的一个快速问题。

我理解它的基础但我仍然对如何在URL的末尾创建一些可选参数感到困惑。例如,我有以下默认页面URL:

examplesite.com/accounts/enquiry

我现在想要添加两个额外的参数,例如:

userid= 6
location= 12

因此,最终的URL应如下所示:

examplesite.com/accounts/enquiry/6/12
but   
examplesite.com/accounts/enquiry    

会让你到同一页面。

我不清楚。它是怎么做到的?我的意思是,这不是一个定制的URL。所以,我不需要创建自定义路线。它基本上只是需要添加到页面的最后两个参数。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

前2个参数是控制器和动作名称,命名为params。 你在这里:

examplesite.com/accounts/enquiry/userid/6/location/12

或者您可以像这样定义自己的路线:

$route = new Zend_Controller_Router_Route('accounts/enquiry/:userid/:location);

然后将其添加到路由器:

$router->addRoute('accounts', $route);

答案 1 :(得分:0)

您可以在Bootstrap.php内添加自定义路线,例如(另):

protected function _initRoutes()
{

    [...]

    $frontController = Zend_Controller_Front::getInstance();
    $router = $frontController->getRouter();

    $accounts = new Zend_Controller_Router_Route(
            'accounts/enquiry/:userid/:location',
            array(
                'userid' => '[0-9]{2}',
                'location' => '[0-9]{2}',
                'controller' => 'accounts', 
                'action' => 'enquiry',
            )
        );

    $router->addRoute('accounts', $accounts);

    [...]

}

http://framework.zend.com/manual/1.12/en/zend.controller.router.html