删除数组集合中的Empty或null元素

时间:2016-06-24 16:53:35

标签: php forms symfony

我想从我的数据库中删除控制器上的任何空文本字段。

以下是我的测试,我没有遇到任何问题:

             $em = $this->getDoctrine()->getManager();
            $listScrap = $em->getRepository('VPScraplistBundle:Scraplist')->find($id);

       ...      


            $form = $this->createForm(new \VP\ScraplistBundle\Form\ScraplistType(), $listScrap);


            if ($form->handleRequest($request)->isValid()) {




              foreach ($listScrap->gethistoriques() as $historique) {
                   if  ($historique->gethistorique()->isEmpty()) {

                     $listScrap->removeCategory($historique);

                  }
                }

 $em->flush();
              $request->getSession()->getFlashBag()->add('notice', 'Index bien modifiée.');

...

我也测试过:

   if  ($historique->gethistorique()->isEmpty()) {

                 $listScrap->removeCategory($historique);       

              }

  if($historique->gethistorique()== ""){

                 $listScrap->removeCategory($historique);       

              }

没有任何成功,抱歉我的英文,谢谢!

2 个答案:

答案 0 :(得分:1)

你需要在冲洗他之前坚持$em->persit($listScrap);

{{1}}

答案 1 :(得分:0)

如果方法$historique->gethistorique()返回字符串,则无法从中调用isEmpty()。我认为没有必要在$listScrap之前坚持flush(),因为它的变化已经被学说跟踪,并且会在刷新时保存。 我想你应该找出你的方法$historique->gethistorique()究竟返回什么,如果它是一个字符串,那么检查字符串是否为空必须足够。