路径中的前向变量

时间:2019-08-31 10:57:47

标签: symfony4

我正在尝试在树枝模板中转发路线的变量。但是我的方法不起作用。

用户可以创建一个projet,其中有多个人员,并且该人员的路线为admin/projet/{idProjet}/personnages/{idPersonnage},所以当我参加人员显示时,我需要恢复idProjet

我试图通过渲染,但也无法正常工作

我的Projet控制器

 /**
 * @Route("admin/projet/{id}", name="projet_show", methods={"GET"})
 */
public function show(Projet $projet, Request $request): Response
{
    $chapitres = $this->getDoctrine()
        ->getRepository(Chapitre::class)
        ->findByProjet($projet->getId());

    $personnages = $this->getDoctrine()
        ->getRepository(Personnages::class)
        ->findByProjet($projet->getId());

    $idProjet = $projet->getId();

    return $this->render('projet/show.html.twig', [
        'projet' => $projet,
        'idProjet' => $idProjet,
        'chapitres' => $chapitres,
        'personnages' => $personnages
    ]);
}

在树枝上的Projet表演

{% for personnage in personnages %}
<div class="list-group">
<a href="{{ path('personnages_show', {'idPersonnage': 
personnage.id}, 
{ 'idProjet': idProjet}) }}" class="list-group-item list-group- 
item-action">
{% if personnage.role == 'Héros' %}
<i class="fas fa-chess-queen"></i> {{ personnage.firstName }} {{ 
personnage.lastName }}
{% elseif personnage.role == 'Secondaire'%}
<i class="fas fa-chess-knight"></i> 
{{ personnage.firstName }} {{ personnage.lastName }}
{% else %}

错误消息:

An exception has been thrown during the rendering of a template (Some mandatory parameters are missing (`idProjet`) to generate a URL for route `personnages_show`.).

1 个答案:

答案 0 :(得分:0)

path的参数格式不正确。

href="{{ path('personnages_show', {'idPersonnage': personnage.id, 'idProjet': idProjet}) }}"

通过使用多余的括号,idProject作为absolute选项被传递。