Как добавить комментарий в Symfony в контроллере? - PullRequest
0 голосов
/ 04 ноября 2018

Я бы хотел добавить комментарий в мою статью с помощью 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 пуст, и я не знаю почему .. Спасибо всем

...