我的一个类目前扩展了 FOSUserBundle 上的 BaseController,并返回父操作。但是,由于项目规范,我不需要编辑父类。有没有办法通过子响应发送额外的变量,让树枝渲染?
儿童班:
class ChangePasswordController extends BaseController
{
    public function changePasswordAction(Request $request)
    {
        $response = parent::changePasswordAction($request);
        return $response; // and 'myVariable' => $myVariable
    }
}
家长班:
class ChangePasswordController extends ContainerAware
{
    /**
     * Change user password
     */
    public function changePasswordAction(Request $request)
    {
        //lots of code.....
        return $this->container->get('templating')
                    ->renderResponse(
                    'FOSUserBundle:ChangePassword:changePassword.html.'
                        .$this->container->getParameter('fos_user.template.engine'),
                         array(
                         'form' => $form->createView()
                          //and 'myVariable' => $myVariable     
                          )
               );
    }
}
总而言之,有没有一种方法可以在不更改父类的情况下将某些内容传递给父类……同时使用附加变量渲染树枝视图。
- 更新 -
本质上,我想使用 FOSUserBundle changePassword 操作呈现一个表单,因此它可以正常工作:
return $this->container
            ->get('templating')
            ->renderResponse(
            'FOSUserBundle:ChangePassword:changePassword.html.'.$this->container->getParameter('fos_user.template.engine'),
            array('form' => $form->createView())
        );
但是,我想将更多变量传递给视图,就像如上所示传递“表单”一样,而不更改FosUserBundle ChangePassword Controller。因此,我有一个继承该控制器的类,添加一些附加功能并返回父更改密码操作:
class ChangePassController extends ChangePasswordController
{
    public function changePasswordAction(Request $request)
    {
        // more code......
        $response = parent::changePasswordAction($request);
        return $response;
    }
}
但是,与大多数应用程序一样,我想向视图模板添加的不仅仅是表单变量。那么有没有办法在不改变父控制器/动作的情况下将附加变量传递给视图?喜欢(但不喜欢)将 'myVariable' => $myVariable 推送到父 changePasswordAction 返回语句?