Php 使用findBy和update实体的条令查询

Php 使用findBy和update实体的条令查询,php,orm,doctrine-orm,Php,Orm,Doctrine Orm,我对Doctrine2相当陌生,我正在尝试学习如何查询实体并更新它们 我用于查询的方法是特定属性上的findBy方法,用于搜索数据库中的记录列表,“我的查询返回对象列表”。现在我想更新实体中一些我无法使用的属性。以下是我所拥有的: /** Set the search attributes for hls**/ $id = array("itemNbr" => $itemNbr); $hls = $this->emInstance->getRepositor

我对Doctrine2相当陌生,我正在尝试学习如何查询实体并更新它们

我用于查询的方法是特定属性上的findBy方法,用于搜索数据库中的记录列表,“我的查询返回对象列表”。现在我想更新实体中一些我无法使用的属性。以下是我所拥有的:

  /** Set the search attributes for hls**/
    $id = array("itemNbr" => $itemNbr);
    $hls = $this->emInstance->getRepository('entity\\Hls')->findBy($id);

    // on update hls
    foreach($hls as $h){

        $h->setAllRd($Rd);
        $h->setRdy($Rdy);
        $h->setNo($no);
        var_dump($h);
    }
    $this->emInstance->flush();
    var_dump($statHdr);
它到达循环中的第一个var转储,该转储返回一个对象列表 但由于使用了flush,因此无法访问第二个var转储。如果我在没有flush方法的情况下执行,属性会在var_dump中显示更新的信息,但实际上不会提交更新,因为flush不起作用。我做错了什么

此外,实体的id是id,itemCnt在流程结束时使用flush()执行查询

同时使用persist()命令

例:

在流程结束时使用flush(),它将执行查询

同时使用persist()命令

例:


解决办法如下:

$crack = $em->getRepository('CrackBundle:Crack')->findBy(array('id' => 1 ));
 foreach ($crack as $c) {
 $c->setName('Nilton');
 $em->persist($c);
 $em->flush();
 }   

解决办法如下:

$crack = $em->getRepository('CrackBundle:Crack')->findBy(array('id' => 1 ));
 foreach ($crack as $c) {
 $c->setName('Nilton');
 $em->persist($c);
 $em->flush();
 }   

我忘了提我是如何处理约会的$Rd='2012-04-05'和$Rdy='0000-00-00'。这也是一个mysql数据库。我的问题在于更新日期。如果我注释掉日期,注释将得到更新和提交,因此我的问题显然是日期格式问题。有线索吗?我知道了。诀窍是使用DateTime$h->setAllRd(new/DateTime($Rd));我忘了提我是如何处理约会的$Rd='2012-04-05'和$Rdy='0000-00-00'。这也是一个mysql数据库。我的问题在于更新日期。如果我注释掉日期,注释将得到更新和提交,因此我的问题显然是日期格式问题。有线索吗?我知道了。诀窍是使用DateTime$h->setAllRd(new/DateTime($Rd));