Php 如何在控制器';ZF2中的s构造函数?
我试图在控制器类的构造函数中获取头,如Php 如何在控制器';ZF2中的s构造函数?,php,constructor,zend-framework2,Php,Constructor,Zend Framework2,我试图在控制器类的构造函数中获取头,如 $this->params()->fromHeader(); 但它不起作用。还有其他方法可以在构造函数中获取头吗 我在头中传递userId,所以我想在构造函数中传递userId,这可能吗 谢谢。我没有测试,但请尝试以下方法: $headers = $this->getRequest()->getHeaders(); $user_param = $headers->get('user'); $user_value = $use
$this->params()->fromHeader();
但它不起作用。还有其他方法可以在构造函数中获取头吗
我在头中传递userId,所以我想在构造函数中传递userId,这可能吗
谢谢。我没有测试,但请尝试以下方法:
$headers = $this->getRequest()->getHeaders();
$user_param = $headers->get('user');
$user_value = $user_param->getFieldValue();
实际上我刚刚用这个找到它
$headers=apache_request_headers();
似乎您想从自定义标题中获取用户id。简而言之,是的,这是可能的。但是在
构造函数中执行此操作可能不是正确的方法,因为所有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);
}
no它返回空数组这是输出Zend\Http\Headers对象([pluginClassLoader:protected]=>[headersKeys:protected]=>Array()[Headers:protected]=>Array())我的意思是,它没有提供我已通过的标头使用firebug检查您的http请求或ajax请求,并检查它是否真的发送标头。我不会重新发现:似乎是apache特有的,而且如果您使用的是框架,则更好地使用内置框架函数$headers=$this->getRequest()->getHeaders();没有给我任何标题