Почему заголовок URL принимает неверный параметр?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему заголовок URL принимает неверный параметр?

Сообщение Anonymous »

В системе комментариев CRUD, которую я размещаю в сообщениях, у меня нет проблем с изменением/удалением указанного комментария путем получения сообщения с идентификатором и идентификатора комментария. Вот использованный метод (который также используется для создания комментария):

Код: Выделить всё

   /**
* @Route("{id}/create", name="createComment")
* @Route("{id}/{comment}/modif", name="modifComment", defaults={"comment"=1}, methods="GET|POST")
*/
public function modification(FilmRepository $film, Comment $comment = null, Request $req, EntityManagerInterface $em, $id)
{
if(!$comment) {
$comment = new Comment();
}

$film = $em->getRepository(Film::class)->findOneBy(array('id' => $id));
$user = $this->getUser();
$form = $this->createForm(CommentType::class, $comment);
$form->handleRequest($req);

dump($film);
dump($comment);

if($form->isSubmitted() && $form->isValid()) {
$comment->setAuthor($user);
$comment->setFilm($film);
$comment->setCreatedAt(new \DateTime());
$em->persist($comment);
$em->flush();

$this->addFlash('success', 'L\'action a bien été effectuée');

return $this->redirectToRoute('home');
}

return $this->render('comment/modif.html.twig', [
"comment" => $comment,
"form" => $form->createView()
]);
}
Проблема возникает, когда я пытаюсь создать новый комментарий. Когда меня направляют в форму, она считает, что идентификатор сообщения соответствует идентификатору комментария (например, если я нахожусь в сообщении 1 и хочу добавить комментарий, я перехожу к форме комментариев 1). Однако в своем запросе на ветку я указал (вопреки изменению), что взял только параметр movie.id:

Код: Выделить всё

{# Modif comment, with two parameters, functional#}
[url={{path(]Modif[/url]

{# Add comment, with one parameter, unfunctional#}
[url={{path(]Add[/url]
Я использовал тот же код, что и для CRUD моих сообщений, и все же, когда я хочу создать новое сообщение, он возвращает мне пустую форму:

Код: Выделить всё

   /**
* @Route("/admin/create", name="createFilm")
* @Route("/admin/{id}", name="modifFilm", methods="GET|POST")
*/
public function modification(Film $film = null, Request $req, EntityManagerInterface $em)
{
if(!$film) {
$film = new Film();
}

$form = $this->createForm(FilmType::class, $film);
$form->handleRequest($req);

if($form->isSubmitted() && $form->isValid()) {
$em->persist($film);
$em->flush();

$this->addFlash('success', 'L\'action a bien été effectuée');

return $this->redirectToRoute('admin');
}

return $this->render('admin/modif.html.twig', [
"film" => $film,
"form" => $form->createView(),
"admin" => true
]);
}
Итак, проблема связана с URL-адресом, который принимает идентификатор фильма и интерпретирует его как идентификатор комментария, но я не понимаю, что является причиной этого?


Подробнее здесь: https://stackoverflow.com/questions/609 ... -parameter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»