【问题标题】:Modx xPDO getMany not returning expected resultsModx xPDO getMany 未返回预期结果
【发布时间】:2015-04-11 22:06:40
【问题描述】:

我不确定这里发生了什么,但我正在尝试从 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组对象的正确方法是什么?

【问题讨论】:

    标签: php modx-revolution xpdo


    【解决方案1】:

    我认为虽然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);
    

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 2010-09-22
      • 2021-05-17
      • 2018-02-19
      • 2018-03-23
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多