Function 如何从Symfony2中的另一个控制器内部访问控制器的功能?

Function 如何从Symfony2中的另一个控制器内部访问控制器的功能?,function,symfony,controller,Function,Symfony,Controller,我想知道如何从Symfony2中的另一个控制器内部访问控制器的功能。事实上,我有两个控制器:EventgroupeController和GroupeController。在控制器EventgroupeController的代码中,我将指令放在下面: return GroupeController::AfficheGroupeAction(); 但当我运行代码或我正在开发的项目时,它会在Symfony2中显示此错误消息: ContextErrorException:运行时通知:不应静态调用非静态

我想知道如何从Symfony2中的另一个控制器内部访问控制器的功能。事实上,我有两个控制器:EventgroupeController和GroupeController。在控制器EventgroupeController的代码中,我将指令放在下面:

return GroupeController::AfficheGroupeAction();
但当我运行代码或我正在开发的项目时,它会在Symfony2中显示此错误消息:

ContextErrorException:运行时通知:不应静态调用非静态方法Ikproj\GroupeBundle\Controller\GroupeController::AfficheGroupeAction,假设$this来自C:\wamp\www\Wkayet\u project\PFESymfony2\src\Ikproj\GroupeBundle\Controller\EventgroupeController.php第104行中的不兼容上下文

查看此链接后:为了了解如何从Symfony2中的控制器内部访问不同的控制器,我修改了fileservices.yml的内容,如下所示:

 parameters:
#    ikproj_groupe.example.class: Ikproj\GroupeBundle\Example

services:
#    ikproj_groupe.example:
#        class: %ikproj_groupe.example.class%
#        arguments: [@service_id, "plain_value", %parameter%]
     controllerservice:
         class: Ikproj\GroupeBundle\Controller\GroupeController
然后,我替换了指令:returngroupecontroller::AfficheGroupeAction;通过以下几行:

$yourController = $this->get('controllerservice');
$yourController1 = $yourController::AfficheGroupeAction();
return $yourController1;
但我仍然看到此错误消息:

ContextErrorException:运行时通知:不应静态调用非静态方法Ikproj\GroupeBundle\Controller\GroupeController::AfficheGroupeAction,假设$this来自C:\wamp\www\Wkayet\u project\PFESymfony2\src\Ikproj\GroupeBundle\Controller\EventgroupeController.php第106行中的不兼容上下文


因此,我的问题是:如何解决这个问题,如何从控制器EventgroupeController内部访问控制器GroupeController的函数AfficheGroupeAction?

操作方法不能是静态的

$this->get('controllerservice')->youMethod();  
应该有用


但是,对于一个好的应用程序设计,您不应该有这种需要,除非您想将一个请求从一个控制器转发到另一个示例:向后兼容性。在这种情况下,您可以使用symfony2 base controller提供的转发方法

这是一个静态的方法吗??因为错误表明不是。不,它不是静态方法,顺便说一句,这是函数AfficheGroupeAction:public function AfficheGroupeAction的头{你知道如何调用一个非静态函数吗?为什么你想在另一个控制器中调用它?如果你需要做一些事情,这个方法中的内容将它移动到服务中,并在两个位置调用它。我必须这样做,因为在表单验证之后,一个组的网页将立即显示。因此,我必须在Symfony2中调用另一个控制器中的一个控制器函数。好的。完成后,请查看页面底部的答案。好的,我尝试了以下代码:return$this->get'controllerservice'->AfficheGroupeAction;但我得到了以下错误消息:FatalErrorException:error:调用成员函数get on C中的非对象:\wamp\www\Wkayet\u project\PFESymfony2\vendor\symfony\symfony\src\symfony\Bundle\FrameworkBundle\Controller\Controller.php第256行…正如您在这里注意到的,它不起作用!!…顺便问一下,这里有什么问题吗?您的控制器扩展了Symfony2控制器类?当然有,这是它的标题:class GroupeController扩展了控制Ler希望我为您提供控制器的所有代码??如果您希望获得帮助,请提供最大信息: