更新symfony中的数据

时间:2017-05-11 07:51:12

标签: php symfony

我只想问你是否可以帮助我完成我在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>

1 个答案:

答案 0 :(得分:3)

我觉得你的代码应该是这样的:

$em->persist($trans);

PS,您不需要$trans,因为{{1}}对象已经在Doctrine中注册(因为您之前提取过它)