Я бы хотел добавить комментарий в мою статью с помощью symfony. Но я не понимаю, почему у меня есть эта ошибка.
Argument 1 passed to Symfony\Component\Form\FormRenderer::renderBlock() must be an instance of Symfony\Component\Form\FormView, string given
Мой код в моем контроллере:
/**
* @Route("blog/comment/{id}", name="article_comment")
*/
public function comment(Article $article,Request $request, ObjectManager $manager)
{
$comment = new Comment();
$form = $this->createForm(CommentType::class, $comment);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$comment->setArticle($article->getId());
$comment->setCreatedAt(new \DateTime());
$manager->persist($comment);
$manager->flush();
return $this->redirectToRoute('blog_show', ['id' => $article->getId()]);
}
return $this->render('blog/createComment.html.twig', [
'formComment' => $form->createView(),
'article' => $article
]);
}
В ветке я использую это для вызова URL:
<a href="{{path ('article_comment', {'id' : article.id })}}">Add new comment</a>
Так что мне нужно сохранить идентификатор статьи, чтобы сообщить об этом сущности, чтобы добавить ее в «setArticle».
Код для шоу одной статьи:
/**
* @Route("/blog/{id}", name="blog_show")
*/
public function show(Article $article)
{
return $this->render('blog/show.html.twig',[
'article' => $article
]);
}
Форма веточки:
{% extends 'base.html.twig' %}
{% form_theme formComment 'bootstrap_4_layout.html.twig' %}
{% block body %}
{{ form('formComment')}}
{% endblock %}
и отношения: в сущности Комментарий:
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Article", inversedBy="comments")
* @ORM\JoinColumn(nullable=false)
*/
private $article;
Я думаю, что параметр article
пуст, и я не знаю почему .. Спасибо всем