配置ZF2路由以仅允许发布请求

时间:2012-09-28 06:42:35

标签: php zend-framework2

如何将Zend Framework 2路由配置为仅允许POST请求类型?

我已经阅读了文档,但没有用。

修改

这是我的DI代码部分

'cv-create' => array(
    'type' => 'Zend\Mvc\Router\Http\Segment',
    'options' => array(
        'route'    => '/profile/cv/:type/create',
        'defaults' => array(
            'controller' => 'Application\Controller\ProfileController',
            'action'     => 'cv_create',
        ),
    ),
),

我的实际问题是,有没有办法将请求控件作为约束注入此路由?

3 个答案:

答案 0 :(得分:3)

您可以扩展Zend\Mvc\Router\Http\Segment类并创建match()的略微修改版本。由于match()具有$request参数,因此它应该如下所示:

public function match(Request $request, $pathOffset = null)
{
    if (!$request->isPost())
    {
        return null;    
    }

    return parent::match($request, $pathOffset);
}

然后在路由配置中使用此修改后的类而不是标准Segment。

答案 1 :(得分:0)

另一种方法可能是在这种情况下使用AbstractRestfulController。

http://framework.zend.com/apidoc/2.1/classes/Zend.Mvc.Controller.AbstractRestfulController.html

仅实现create()方法。

答案 2 :(得分:-1)

Zend_Controller_Request_Http

中的

您可以停用其他请求类型。