Zend Framework 2:在没有params插件的情况下访问查询参数/在控制器外部使用params插件

Sve*_*ven 0 php zend-framework2

我正在编写一个服务,用某些查询参数做一些事情,他们的名字是已知的.

因为我不在控制器中,所以我不能使用params插件.

如何在不使用params插件的情况下访问Zend Framework 2中的查询参数?有没有办法在控制器外部使用params插件?

Vas*_*kov 6

是的,您可以获得如下查询:

$request = $this->getServiceManager()->get('Request');
$query = $request->getQuery();
Run Code Online (Sandbox Code Playgroud)

更详细的例子:

<?php

use Zend\ServiceManager\ServiceManager;
use Zend\ServiceManager\ServiceManagerAwareInterface;

class SomeService implements ServiceManagerAwareInterface
{
    protected $serviceManager;

    public function getServiceManager()
    {
        return $this->serviceManager;
    }

    public function setServiceManager(ServiceManager $serviceManager)
    {
        $this->serviceManager = $serviceManager;
        return $this;
    }

    public function doSomething() 
    {
        $request = $this->getServiceManager()->get('Request');
        $query = $request->getQuery();

        // as well as:
        $params = $this->getServiceManager()->get('ControllerPluginManager')->get('params');
    }
}
Run Code Online (Sandbox Code Playgroud)