gpt4 book ai didi

php - 如何返回一个空的 Doctrine_Collection?

转载 作者:可可西里 更新时间:2023-11-01 00:17:02 24 4
gpt4 key购买 nike

我有一个返回 Doctrine_Collection 的方法,带有 whereIn() 子句:

public function getByValues($values)
{
if (!is_array($values))
throw new sfException('Wrong parameter type. Excepted array.');

return Doctrine_Query::create()
->from('Anomaly a')
->whereIn('a.value', $values);
}

但是,当 $values 为空数组时,此方法返回AnomalyTable 中的所有行。这不是意外行为,如 Doctrine 文档中所述,并写在这里:Doctrine where in with Doctrine_Query

但是,当 $values 是一个空数组时,我想返回一个空的 Doctrine_Collection 而不是我的查询结果。

关于如何做到这一点有什么想法吗?

谢谢 =)

编辑:

添加一个不可能的子句,如 ->where('1=0') 可以解决问题,但这是对数据库服务器的不必要请求。有没有人有更好的主意?

最佳答案

然后呢(你还需要 execute 方法来获取查询结果!返回类型每次都是相同的):

public function getByValues($values)
{
if (!is_array($values))
throw new sfException('Wrong parameter type. Excepted array.');

if (empty($values)) {
return new Doctrine_Collection('Anomaly');
}

return Doctrine_Query::create()
->from('Anomaly a')
->whereIn('a.value', $values)
->execute()
;
}

关于php - 如何返回一个空的 Doctrine_Collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com