Symfony2:如何在调用$ this-> render()之前赋值?

时间:2014-12-27 19:31:45

标签: php oop symfony events twig

myMethod()呈现一个分配了一些默认参数的模板。我想通过扩展ParentController来调用逻辑之前,在twig-template中分配一些可用的值。

我添加了伪代码行$this->assignValue('myKey', 'myValue');。有谁知道是否有像assignValue()这样的方法或如何解决我的问题?

提前致谢!

class ParentController {
    protected function myMethod() {
        return $this->render('myTemplate.html.twig', array(
            'param1' => 'value1',
            'param2' => 'value2',
            'param3' => 'value3'
        ));
    }
}

class ChildController extends ParentController {
    // TODO: Assign some parameters BEFORE

    // Pseudocode:
    $this->assignValue('myKey', 'myValue');
    // /Pseudocode 

    return parent::myMethod();
}

1 个答案:

答案 0 :(得分:4)

您可以在ChildController方法中重新定义render,如:

function render($tpl, $parameters) {
   $parameters = array_merge($parameters, ['myKey' => 'myValue']/** or some other parameters*/);
   return parent::render($tpl, $parameters);
}