修改表中的行并将更改保存在数据库中

时间:2012-11-09 07:38:26

标签: php symfony doctrine

我想通过href链接修改一个列,我可以更改但是这个更改不会保存在可以帮助我的数据库中吗? 在我的控制器中:

public function updateAlertesAction()
{  
   $date=$this->getRequest()->query->get('date');
   $CI=$this->getRequest()->query->get('CI');
   $cell=$this->getRequest()->query->get('cell');

   $kpi_name=$this->getRequest()->query->get('cmts');

   $KPI = $this->getDoctrine()
               ->getEntityManager()
               ->getRepository('AdminBlogBundle:StatAlert')
                ->findBy(array('cell' => '$idKPI', 'ci' => '$CI', 'dat' => '$date'));

         $KPI->setCmts($kpi_name);
         $em = $this->getDoctrine()->getEntityManager();
         $em->persist($KPI);
         $em->flush();

     return new Response ($kpi_name.' Updaate Ok : '.$KPI->getCmts());
}

他显示此错误消息

  

致命错误:在 D:\ EasyPHP-5.3.3.1 \ www \ alerteurs1 \ vendor \ doctrine-dbal \ lib中的非对象上调用成员函数format() \ Doctrine \ DBAL \ Types \ DateType.php 在线 44

如果我替换搜索 - > find(array('cell'=>'TUN1196S1')); 我有警告:array_combine()[function.array-combine]:这两个参数在D:\ EasyPHP-5.3.3.1 \ www \ alerteurs1 \ vendor \ doctrine \ lib \ Doctrine \ ORM \ EntityRepository中应该具有相同数量的元素。 php line 126

2 个答案:

答案 0 :(得分:1)

也许您的$ date应该是\Datetime对象?

答案 1 :(得分:0)

我认为你应该在数组声明中删除变量周围的单引号:

->findBy(array('cell' => '$idKPI', 'ci' => '$CI', 'dat' => '$date'));

应该看起来像:

->findBy(array('cell' => $idKPI, 'ci' => $CI, 'dat' => $date));