Modx xPDO getMany 未返回预期结果
Modx xPDO getMany not returning expected results
我不确定这里发生了什么,但我正在尝试从 modx/xpdo 对象中检索一些预算并得到意想不到的结果。从下面的代码中,两个 foreach 循环 return 与第一个 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组对象的正确方法是什么?
我认为 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);
我不确定这里发生了什么,但我正在尝试从 modx/xpdo 对象中检索一些预算并得到意想不到的结果。从下面的代码中,两个 foreach 循环 return 与第一个 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组对象的正确方法是什么?
我认为 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);