Symfony 2 - 在twig上缺少强制参数异常延伸

时间:2013-07-19 14:28:09

标签: symfony twig

我目前得到一个非常有线的树枝例外:

如果我使用树枝{% extends 'some:template' %},我会得到以下树枝异常:

An exception has been thrown during the rendering of a template ("The "_projectView" route has some missing mandatory parameters ("id").") in "xy:Project:view.html.twig".

但是,如果我删除{% extends 'some:template' %},模板会正确显示 - 这对我来说排除了路由或控制器的任何问题,它必须是模板的问题,但我无法理解出来。父模板中没有使用变量。

2 个答案:

答案 0 :(得分:9)

在模板内部,您试图扩展您并尝试从路线生成网址' _projectView'但是你没有提供所有必要的参数。

在您的路线中添加默认ID ...

route_name:
    pattern: /whatever/{id}
    defaults: { id: 1 }

...或在模板中执行以下操作:

{{ path('route', { 'id' : entity.id|default('1') }) }}

答案 1 :(得分:1)

很简单,要正确显示,每个树枝都需要具有所需的所有变量。它们位于URL中或传递到render函数中。如果缺少任何这些变量,Symfony将抛出此错误。

鉴于你所说的在我看来,你正在扩展的树枝有一个它想要的变量。在你扩展这个树枝的所有其他地方,你已经在URL或其中一个父树枝中提供了这个变量,所以它没有抱怨。在这种情况下,您尝试使用它并且缺少该变量。所以它抱怨。

检查以确保您的路线传递正确的变量或您的控制器将正确的变量传递到渲染功能。