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');
}

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

0

Решение

Я думаю, тогда как 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);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]