Modx xPDO getMany не возвращает ожидаемые результаты

Я не уверен, что здесь происходит, но я пытаюсь получить некоторые бюджеты из объекта 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');
}

Я не уверен, что здесь происходит. Как правильно выбрать 2 набора объектов из $tipa объект?

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);
Другие вопросы по тегам