2

我目前遇到了一个非常有线的树枝异常:

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

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' %},模板会正确显示——这对我来说排除了路由或控制器的任何问题,它必须是模板的问题,但我无法弄清楚。父模板中不使用任何变量。

4

2 回答 2

9

在您尝试扩展的模板中,您尝试从路由“_projectView”生成一个 url,但您没有提供所有必要的参数。

向您的路线添加默认 ID ...

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

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

{{ path('route', { 'id' : entity.id|default('1') }) }}
于 2013-07-19T14:32:34.650 回答
1

很简单,为了正确显示,每根树枝都需要定义它需要的所有变量。它们要么在 URL 中,要么传递到渲染函数中。如果这些变量中的任何一个缺失,Symfony 就会抛出这个错误。

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

检查以确保您的路由传递了正确的变量,或者您的控制器将正确的变量传递给了渲染函数。

于 2015-01-29T20:42:30.603 回答