如何在ZF2中的控制器构造函数中获取头文件?

时间:2015-03-17 07:00:49

标签: php constructor zend-framework2

我试图在Controller类的构造函数中获取头像

$this->params()->fromHeader();

但它无法正常工作在构造函数

中获取头文件

我在头文件中传递userId所以我希望在构造函数中可以吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

好像你想从自定义标头中获取用户ID。简短的回答是肯定的,这是可能的。但是在constructor中执行此操作可能不是正确的方法,因为ControllerManager实例化了所有MVC控制器。

您需要在控制器内部实施onDispatch()方法,以便在发送实际操作之前检查标头值。

试试这个:

<?php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\Mvc\MvcEvent;

class MyController extends AbstractActionController
{
    /**
     * On dispatch event
     *
     * @param  MvcEvent $event
     */
    public function onDispatch(MvcEvent $e)
    {
        $headers = $e->getRequest()->getHeaders();
        if($headers->has('user')) {
            // User header is provided.
            $header = $headers->get('user');
            // ... here you can do what you want with this header.
        }

        // Don't forget to trigger parent's dispatch.
        return parent::onDispatch($e);
    }

答案 1 :(得分:1)

我没有测试但是试试这个:

$headers = $this->getRequest()->getHeaders();
$user_param = $headers->get('user');
$user_value = $user_param->getFieldValue();

答案 2 :(得分:1)

其实我刚刚用这个

找到它
$headers=apache_request_headers();