我有一個控制器作爲一個服務,我想從我的命令調用它控制器與命令Symfony的2
這是我的配置
#service.yml
parameters:
dg_app.controller.glossaries.class: dg\AppBundle\Controller\GlossaryController
services:
dg.glossary.controller:
synchronized: true
class: "%dg_app.controller.glossaries.class%"
calls:
- [ setContainer, [ @service_container ]]
#MyCommand.php
$request = $this->getContainer()->get('request');
$categories = $this->getContainer()->get('dg.glossary.controller')->setGlossaryAction($request);
#GlossaryController
/**
* @Route("set_glossary/{type}",name="set_glossary_watches")
* @Template("xxxBundle:Glossary:glossary.html.twig")
*/
public function setGlossaryAction(Request $request) {
...
}
有了這個配置我有這樣的錯誤服務
[Symfony\Component\DependencyInjection\Exception\InactiveScopeException]
You cannot create a service ("request") of an inactive scope ("request").
如何用不同的參數(類型參數)調用我的控制器?
你不能命令訪問請求,因爲命令沒有關於請求的知識(這是HTTP /瀏覽器專用) –
@TomaszMadeyski謝謝,我可以模擬$要求?像'$ request = $ this-> getContainer() - > get('request'); $ request-> attributes-> set('type','mytype'); $ categories = $ this-> getContainer() - > get('dg.glossary.controller') - > setGlossaryAction($ request);'在我的Command中有這樣的事情?我是否要爲「每個」$類型創建兩條或更多路線? – Barno
有關如何模擬請求的[官方指南](http://symfony.com/doc/current/components/http_foundation/introduction.html#simulating-a-request)。 –