如何设置在ZF2相应控制器操作的自定义标题?(How to set custom headers f

2019-10-21 14:39发布

我想从来没有在Zend框架2我的一些控制器动作响应。

这是一个我说控制器的定义:

'login' => array(
    'type' => 'segment',
    'options' => array(
        'route'    => '/login[/:action][/:id]',
        'constraints' => array(
            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
            'id' => '[a-zA-Z0-9]*',
        ),
        'defaults' => array(
            'controller' => 'Presentation\Controller\Login',
            'action'     => 'index',
        ),
    ),
),

我想没有任何回应的,这种控制器供应被缓存。 我想喜欢的setHeader这样:

$this->getResponse()
    ->setHeader('Cache-Control', 'no-cache, no-store, must-revalidate', true)
    ->setHeader('Pragma', 'no-cache', true)
    ->setHeader('Expires', '0', true);

动作的功能里面,这是行不通的。 我还设置了正确的标题上的布局.pthml

Answer 1:

你是在正确的道路。 你只需要实际的Zend \ HTTP \头例如通过$this->getResponse()->getHeaders()相关的行动中。

尝试这个:

public function myAction()
{
    $headers = array(
        'Cache-Control' => 'no-cache, no-store, must-revalidate',
        'Pragma'        => 'no-cache',
        'Expires'       => false,
        );
    $this->getResponse()->getHeaders()->addHeaders($headers);
}


文章来源: How to set custom headers for individual controller actions in ZF2?