php – Symfony2从表中删除记录

我的枝条中有一个按钮,我希望能够从表中删除记录.当我点击删除按钮时页面重新加载但没有记录被删除.

这是我的树枝

<h1>Admin Area - The football blog</h1>
 <table class="zebra">
 <thead> 
     <tr>
      <th>Title</th>
        <th>Date</th>       
        <th>Action</th>
     </tr>
   </thead> 
   <tbody> 
     <tr>
     {% for entity in adminentities %}
        <td>{{entity.postTitle}}</td>
        <td>{{ entity.postDescription }} </td>      
        <td> <a href="{{ path('deletepost', { 'id': entity.id })     }}">Delete</a> || Edit</td>
      </tr>

     {% endfor %}

     </tbody> 
 </table>

这是我的控制器.

  /**
 * @Route("/posted/admin", name="deletepost")
 * @Template()
 */

public function admindeleteAction($id)
{

   $em = $this->getDoctrine()->getEntityManager();
   $adminentities = $em->getRepository('BlogBundle:posted')
                       ->findOneBy(array('post'=>$post->getId(),     'id'=>$id));

   $em->remove($adminentities);
    $em->persist($adminentities);
       $em->flush();                                                     
   return $this->render('BlogBundle:Default:admin.html.twig');
}

解决方法:

$em->persist($adminentities); // This line will persist you entity again. 

所以你可以删除这一行,我认为没关系..另外,如果你保留这一行,每次按删除按钮时实体的ID都会改变

最后,您的代码将如下所示:

public function admindeleteAction($id)
{
   $em = $this->getDoctrine()->getEntityManager();
   $adminentities = $em->getRepository('BlogBundle:posted')->find($id);

   $em->remove($adminentities);
   $em->flush();   

   return $this->render('BlogBundle:Default:admin.html.twig');
}

或者您可以直接将实体传递给方法(检查您的情况的语法):

public function admindeleteAction(Posted $posted)
{
   $em = $this->getDoctrine()->getEntityManager();

   $em->remove($posted);
   $em->flush();   

   return $this->render('BlogBundle:Default:admin.html.twig');
}

TWIG中的参数是一样的.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...