转换Zend_Rest_Route代码来处理2个参数?

时间:2011-03-22 12:11:12

标签: php zend-framework zend-route

我有来自http://www.chrisdanielson.com/2009/09/02/creating-a-php-rest-api-using-the-zend-framework/的Zend代码,如下所示:

    $this->bootstrap('Request');
    $front = $this->getResource('FrontController');
    $restRoute = new Zend_Rest_Route($front, array(), array(
        'default' => array('version')
    ));
    $front->getRouter()->addRoute('rest', $restRoute);

我正在试图像这里指定的那样:http://wdvl.com/Authoring/PHP/Zend_Routes/Jason_Gilmore04282010.html

让系统响应网址,例如:

www.site.com/version/param1/param2

如何更改上面的工作代码以执行2个参数?我将实现其他命令,例如:/ retrieve /,/ put /等等。

2 个答案:

答案 0 :(得分:1)

我的Bootstrap中的路由如下:

    /*
     * ReWrite Rules and Routes
     */
    protected function _initRoutes() {

        $router = Zend_Controller_Front::getInstance ()->getRouter ();
        $router->addRoute('rest_url', new Zend_Controller_Router_Route('version/:param1/:param2/', array( 'module'=>'ModuleName', 'controller' => 'ControllerName', 'action' => 'ActionName', 'param1' => 'default here if you want', 'param2' => 'can leave param1 and param2 blank here')));
    }

这是我一直有路线工作的方式。

答案 1 :(得分:0)

Zend_Rest_Route不支持多个重写参数(例如/ version /:id)。

您必须编写自定义路由以在Rest实现中处理此问题。