Modx xPDO getMany没有返回预期的结果

时间:2015-04-11 22:06:40

标签: php modx-revolution xpdo

我不确定这里发生了什么,但我正在尝试从modx / xpdo对象中检索一些预算并获得意外结果。从下面的代码中,两个foreach循环返回相同的结果[第一个getMany调用的结果。 2项]如果我切换getmany调用的顺序,我只获得两个foreach循环的结果。

$tipa = $this->modx->getObject('Tipa', array('id' => $id, 'token' => $token));


// should retrieve two objects
$tipa_sub_budgets = $tipa->getMany('TipaBudget', array('budget_type_id:!=' => '999'));
foreach($tipa_sub_budgets as $sb){
    echo $sb->get('id');
}

// should retrieve one object
$tipa_primary_budgets = $tipa->getMany('TipaBudget', array('budget_type_id' => '999'));
foreach($tipa_primary_budgets as $tb){
    echo $tb->get('id');
}

我不确定这里发生了什么。从$tipa对象中获取2组对象的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

我认为xPDO::getObject()可以作为数组或xPDOCriteria的实例传递标准,xPDOObject::getMany()只需要xPDOCriteria的实例,这意味着数组不会工作

尝试传递xPDOCriteria的实例,如此...

$criteria = $this->modx->newQuery("TipdaBudget"); // classname, not the alias
$criteria->where(array("budget_type_id:!=" => 999));

$tipa_sub_budgets = $tipa->getMany("TipaBudget", $criteria);