我只想问你是否可以帮助我完成我在symfony2中的任务。我正在开发一个评论部分,就像你可以在一个模态的文本框中写评论然后一旦你点击"添加评论",你写的评论将被存储在名为edi_864824的表,它位于名为&#34的列中;注释"在其对应的id(ediTransactionId)中。但我只是symfony2框架的新手,这就是为什么我真的很难做到这一点。请帮我纠正我的代码。 感谢
这是我的路线:
matrix_edi_addComment:
pattern: /addComment/{id}-{url}
defaults: { _controller: "MatrixEdiBundle:Matrix:addComment" }
这是我的控制器:
public function addCommentAction($id, $url, Request $request) {
$em = $this->getDoctrine()->getManager();
$trans = $em->getRepository('MatrixEdiBundle:Edi864824')->findOneByEdiTransactionId($id);
$comment = $this->get('request')->request->get('comment');
$trans->setComment($comment);
$em->persist($trans);
$em->flush();
$session = $this->getRequest()->getSession();
$session->getFlashBag()->add('message', 'Your comment has been saved.');
return $this->redirect($this->generateUrl($url));
}
这是我的存储库:
public function getOutputComment($transDate){
$em = $this->getEntityManager();
$query = $em->createQuery(
'SELECT partial a.{ediTransactionId, transactionDate, isaNumber, gsNumber, fileName},
partial b.{ediTransactionId, tradingPartner, transDate, issue, referenceNumberId, comment},
partial c.{referenceNumberId, transCn, poNumber, asnNumber}
FROM MatrixEdiBundle:EdiTransaction a
JOIN a.edi864824 b
JOIN b.referenceNumber c
WHERE a.ediTransactionId = b.ediTransactionId
AND b.referenceNumberId = c.referenceNumberId
AND b.transDate LIKE :transDate
ORDER BY b.transDate DESC')
->setParameter('transDate', "%$transDate%");
return $query->getResult();
}
这是在文件所在的另一个页面的twig查询(inputComment.html.twig)中,用于写入注释并重定向到具有注释列的新twig查询(outputComment.html.twig)在它。
<a data-href="{{ path('matrix_edi_addComment', { 'id':trans.ediTransactionId,'url': 'matrix_edi_outputComment' }) }}" data-toggle="modal" data-target="#confirm-delete"><center><i class="fa fa-comment" style="color: #1975A3;"></i></center></a>
答案 0 :(得分:3)
我觉得你的代码应该是这样的:
$em->persist($trans);
PS,您不需要$trans
,因为{{1}}对象已经在Doctrine中注册(因为您之前提取过它)