删除表Symfony2的一行

时间:2014-08-20 08:37:38

标签: php symfony

我想删除一行表格。

我从我的实体“Entite”获取表格元素。

在我的控制器里我有:

 public function deleteBuAction($id){


     $em = $this->getDoctrine()->getEntityManager();
     $entite=$this->get('entite.entiteservice')->findId($id);
            $em->remove($entite);
            $em->persistAndFlush($entite);

    return $this->render("acmeBundle:admin:delete.html.twig");


}
表格中的

{% for entite in liste %}




                            <tr class="odd gradeX">

                                     <td> {{ entite.nom_entite  }} </td> 
                                     <td> {{ entite.nom_agence  }} </td> 
                                     <td> {{ entite.entite_abrev }} </td>
                                     <td> {{ entite.entite_niveau  }} </td> 
                                     <td>
                                        <a  href=#><img src="{{ asset('bundles/acme/img/modifier.png')}}" width="20" height="20"  /></a>
                                        <a  href={{ path('delete_bu', {'id': entite.id}) }}><img src="{{ asset('bundles/acme/img/delete.png')}}" width="20" height="20" /></a>
                                     </td>
                            </tr>

                    {% endfor %}

我得到了这个例外:

EntityManager#remove() expects parameter 1 to be an entity object, NULL given.

我希望获得相同的twig of entite not delete.html.twig我怎么能在同一根树枝上休息。 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

你应该尝试这样

         public function deleteBuAction($id){


         $em = $this->getDoctrine()->getEntityManager();
         $entite = $em->getRepository('YourBundle:YourEntity')->find($id);
         $em->remove($entite);
         $em->persist($entite);
         $em->flush();

         return $this->render("acmeBundle:admin:delete.html.twig");

        }

因为您的代码行

         $entite=$this->get('entite.entiteservice')->findId($id);

不提取对象,但是为了获取对象,你必须使用

          $entite = $em->getRepository('YourBundle:YourEntity')->find($id);

获得确认警报你应该多做一点;在你的删除链接上假设:

      <a  href={{ path('delete_bu', {'id': entite.id}) }} onclick="myFunction()" ><img src="{{ asset('bundles/acme/img/delete.png')}}" width="20" height="20" /></a>

并在您的Javascripts中添加此

     function myFunction() {
            alert("Do u want to delete it ?");
        }

答案 1 :(得分:1)

  

@ ajeet-varma example

不要删除并坚持该实体。只删除:

$em = $this->getDoctrine()->getEntityManager();
$entity = $em->getRepository('YourBundle:YourEntity')->find($id);
$em->remove($entity);
$em->flush();