微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Doctrine ORM,两个不同的查询生成相同的结果集

我正在使用Doctrine 1.2和Symfony 1.4.

在我的操作中,我有两个不同的查询返回不同的结果集.不知怎的,第二个查询似乎改变了第一个查询的结果(或引用?),我没有任何线索为什么..

这是一个例子:

  $this->categories = Doctrine_Query::create()
       ->from('Categorie AS c')
       ->innerJoin('c.Activite AS a')
       ->where('a.archive = ?', false)
       ->execute();

  print_r($this->categories->toArray()); // Return $this->categories results, normal behavior.

  $this->evil_query = Doctrine_Query::create()
       ->from('Categorie AS c')
       ->innerJoin('c.Activite AS a')
       ->where('a.archive = ?', true)
       ->execute();

  print_r($this->categories->toArray()); // Should be the same as before, but it return $this->evil_query results instead!

为什么Doctrine这样做?这让我疯狂.谢谢!

为简单起见,似乎查询2正在劫持查询1结果.

解决方法:

在Doctrine_Collection中的toArray()方法api文档中,它说:

Mimics the result of a $query->execute(array(), Doctrine_Core::HYdratE_ARRAY);

我怀疑你满意地回答这个问题,你将不得不通过源代码.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐