我正在使用 Symfony 2.8.0(因为我发现 Symfony 3.x 目前还不是很成熟,但我们现在不进行讨论)。
根据官方文档(http://symfony.com/doc/2.8/book/templating.html#embedding-controllers),应该可以将参数传递给从视图中调用的嵌入式控制器。
但是,这似乎不起作用。我总是以以下异常结束:
“控制器“AppBundle\Controller\DefaultController::buildNavigationAction()”要求您为“$argument1”参数提供一个值(因为没有默认值或因为在此参数之后有一个非可选参数)。
在我看来,我有以下代码:
{{ render(controller('AppBundle:Default:buildNavigation'), {
'argument1': 25,
'argument2': 50
}) }}
控制器如下所示:
public function buildNavigationAction($argument1, $argument2)
{
// ... some logic ...
return $this->render(
'navigation.html.twig', array(
'foo' => $argument1,
'bar' => $argument2
)
);
}
是什么赋予了?这是一个错误吗?
文档中描述的用例(从基本模板中渲染动态内容,因此在每个页面上)正是我使用它的目的。在每个控制器中重复相同的逻辑显然违反了 DRY 原则。