Невозможно сгенерировать URL для именованного маршрута "участники", так как такой маршрут не существует - PullRequest
0 голосов
/ 07 октября 2019

Я хочу добавить эту ссылку в мой код:

<a href="{{ path('participants', {id: formation.id})  }}" class="btn btn-secondary">La liste des participants</a>

И я пишу эту функцию в моем контроллере:

 /**
 * @Route("/admin/formation/{id}/participants", name="participants")
 */
public function participants(Formations $formation)
{
    $participants = $this->repositoryp->findBy(array('id_f_id' => $formation->getId() ));

    return $this->render('Formations/Participants.html.twig', [
        'participants' => $participants,
    ]);
}

Но она не работает. что мне нужно сделать?

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

В вашем примере все правильно. Возможно, вы забыли настроить маршрутизацию с помощью аннотаций .

Check config/routes.yaml. Должна быть такая конфигурация:

# config/routes.yaml
controllers:
    resource: '../src/Controller/'
    type: annotation

Возможно, эта конфигурация находится в config/routes/annotations.yaml.

# config/routes/annotations.yaml
controllers:
    resource: '../../src/Controller/'
    type: annotation

Если этот параметр отсутствует ни в одном из этих файлов, добавьте его.

0 голосов
/ 07 октября 2019

вы пропустили получение идентификатора из запроса:

 /**
 * @Route("/admin/formation/{id}/participants", name="participants")
 */
public function participants(Formations $formation,$id)
{
    $participants = $this->repositoryp->findBy(array('id_f_id' => $id ));

    return $this->render('Formations/Participants.html.twig', [
        'participants' => $participants,
    ]);
}

dump $ id, и вы можете получить значение идентификатора, а затем сделать вызов репо, как вы сделали.

Changes,

public function participants(Formations $formation,$id)

и

$participants = $this->repositoryp->findBy(array('id_f_id' => $id ));

И вам пора.

...