FOSCommentの指示に従って、1 つのページに複数のスレッドを配置しました。大丈夫、すべてうまくいきます。冗談だよ、世界はそんなに美しくない。
私の問題を説明しようとします: コメントを送信すると、URL が原因で整合性制約違反が発生しました。URL に Thread_id を渡しません。
コントローラーでそれを行うコードを見つけましたが、それを修正する方法がわかりません。だから、私のコントローラーがあります:
public function indexAction(Request $request)
{
$stmt = $this->getDoctrine()->getEntityManager()
->getConnection()
->prepare('select ttrss_entries.id, title, content, body, thread_id '
. 'FROM ttrss_entries '
. 'LEFT JOIN ttrss_tags ON ttrss_entries.id = ttrss_tags.post_int_id '
. 'LEFT JOIN comment on comment.thread_id = ttrss_entries.id '
. 'WHERE ttrss_tags.tag_name = "politique" '
. 'GROUP BY ttrss_entries.id');
$stmt->execute();
$result = $stmt->fetchAll();
//Here my problem
$id = 'thread_id';
$thread = $this->container->get('fos_comment.manager.thread')->findThreadById($id);
if (null === $thread) {
$thread = $this->container->get('fos_comment.manager.thread')->createThread();
$thread->setId($id);
$thread->setPermalink($request->getUri());
$this->container->get('fos_comment.manager.thread')->saveThread($thread);
}
$comments = $this->container->get('fos_comment.manager.comment')->findCommentTreeByThread($thread);
return $this->render('AppBundle:Politique:index.html.twig', array(
'comments' => $comments,
'thread' => $thread,
'entities' => $result,
));
}
ここで私の見解:
<div class="fos_comment_thread" data-thread-id="{{ thread.id }}">
{% include 'FOSCommentBundle:Thread:comments.html.twig' with {
'comments': comments,
'thread': thread
} %}
よろしくお願いいたします。
PS : 私は Symfony の初心者です。