ORM

Модератор
#
Re: ORM
marun2402,

См. http://www.hostcms.ru/documentation/modules/properties/introduction/

"Получение значений дополнительных свойств"
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: ORM
Создал свою модель. Вызываю в ней последовательно методы queryBuilder() и orderBy(). После этого в объекте модели вызываю метод findAll(). И в полученном массиве значения в виде объектов находятся совсем не в том порядке, в каком я просил.

Попробовал после вызова findAll() в объекте модели последовательно вызвать queryBuilder() и build(), чтобы посмотреть на сформированную строку запроса. Она выглядит так, как мне и нужно. И если выполнить этот запрос в MySQL, результат получается нужный. А почему тогда findAll() возвращает мне сортированный по-своему результат?
Модератор
#
Re: ORM
lezhenkin,
код покажите
#
Re: ORM

$oMy_Model = Core_Entity::factory("My_Model");

// Затем несколько раз вызываю собственные методы модели
$oMy_Model->myFunc()
    ->anotherMyFunc();

// Метод myFunc выглядит примерно так
public function myFunc()
{
   $this->queryBuilder()
      ->where("field", "=", 1);

   return $this;
}

// Потом делаю так
$oMy_Model->queryBuilder()
   ->orderBy("date", "DESC");

// После всего этого
$My_Controller = new My_Controller($oMy_Model);

$My_Controller->getInfo();

// Метод getInfo выглядит примерно так
public function getInfo()
{
   $oMy_Model = $this->getEntity();
   
   $aMy_Model = $oMy_Model->findAll();

   foreach ($aMy_Model as $Model)
   {
      // Здесь порядок элементов не тот, который я указывал в сортировке
   }
}
Модератор
#
Re: ORM
lezhenkin,
перед orderBy() добавьте ->clearOrderBy(), в модели могут быть сортировки по умолчанию заданы.
#
Re: ORM
hostcms, добавлял. Результат тот же.
Модератор
#
Re: ORM
lezhenkin,
тогда присылайте запрос в поддержку с данными доступа и ссылкой на тему форума, будем выяснять и напишем здесь ответ.
#
Re: ORM
Причиной описанного мною была не сама HostCMS. Цепочка действий и запросов в коде ТДС формировали массив, который передавался функции json_encode(). Ключами массива являлись целые числа. И в итоге браузер самостоятельно сортировал полученные данные. Стоило сменить ключи массива на строки, сортировка, нужна мне, сохранилась.

Благодарю службу поддержки за оперативный ответ и подсказки.
Авторизация