我需要从另一个控制器内的不同控制器访问一个方法.我该怎么做?我可以使用this->get方法吗?
我可以将控制器包含在当前控制器中并创建它的对象并通过对象访问该方法吗?这样做是"好"吗?
我想调用form方法---另一个控制器的newAction.
Sim*_*ity 67
如果您不想将该类定义为一个服务,因为它不觉得作为一个很好的做法,我和@Qoop引述法比安斯基说同样的,你可以使用转发:
http://symfony.com/doc/current/controller/forwarding.html
public function indexAction($name)
{
    $response = $this->forward('AcmeHelloBundle:Hello:fancy', array(
        'name'  => $name,
        'color' => 'green',
    ));
    // ... further modify the response or return it directly
    return $response;
}
Run Code Online (Sandbox Code Playgroud)
如果您需要在模板中嵌入内部控制器操作的输出,Symfony的文档也有相应的内容.
Vit*_*ian 41
您可以将控制器定义为服务,然后在另一个控制器中获取.
在您services.yml定义所需的控制器作为服务:
services:
    your_service_name:
        class: YourCompany\YourBundle\Controller\YourController
Run Code Online (Sandbox Code Playgroud)
然后在任何控制器中,您将能够通过容器获得此服务:
$yourController = $this->get('your_service_name');
Run Code Online (Sandbox Code Playgroud)
在文档中有一些关于控制器作为服务的有用信息
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           65390 次  |  
        
|   最近记录:  |