У меня есть несколько маршрутов в моих проектах, которые являются результатом длинного отношения родитель / потомок.
Дело в том, что Symfony ищет сущность только по ее идентификатору.Игнорирование всех других параметров в маршруте.
Например, у меня есть этот маршрут:
@Route("/projets/projet-{projet}/murs/mur-{mur}/obstacles/obstacle-{id}/", name="obstacle_edit")
editAction(Request $request, Obstacle $obstacle) {}
Здесь obstacle
- это искомая сущность, которую я ищу.
mur
is $obstacle->getMur()
и projet
is obstacle->getMur()->getProjet()
Таким образом, мой тег form
выглядит следующим образом:
<form action="{{ path('obstacle_edit', { 'projet': obstacle.mur.projet.id, 'mur': obstacle.mur.id, 'id': obstacle.id }) }}" method="POST"></form
Тем не менее, Doctrine выполняет этот запрос:
SELECT
t0.id AS id_1,
t0.nom AS nom_2,
t0.posx AS posx_3,
t0.posy AS posy_4,
t0.posz AS posz_5,
t0.dimx AS dimx_6,
t0.dimy AS dimy_7,
t0.dimz AS dimz_8,
t0.mur_id AS mur_id_9
FROM
obstacle t0
WHERE
t0.id = ?
Таким образом, игнорируя два других параметра в маршруте.
Как я могу убедиться, что другие параметры не будут проигнорированы?