Php 使用findBy和update实体的条令查询
我对Doctrine2相当陌生,我正在尝试学习如何查询实体并更新它们 我用于查询的方法是特定属性上的findBy方法,用于搜索数据库中的记录列表,“我的查询返回对象列表”。现在我想更新实体中一些我无法使用的属性。以下是我所拥有的: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
/** 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));