Центр документации
Карта сайта

Создай визитку сам!


Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »


Модель списка

Модель списка отвечает за получение списка элементов и предоставляет средства для его обхода.
Модель списка не хранит данные, этим занимается модель элемента. 
Модель списка выполняет следующие роли:

  1. Наложение фильтров на данные;
  2. Наложение лимитов на количество возвращаемых данных;
  3. Наложение сортировок и группировок;
  4. Указание данных, которые необходимо получить.

Модель списка используется для загрузки данных списка компонентой отображения (view) для последующей отрисовки списка. Проще всего модель списка понимать, как итератор по данным, возвращающий модели элементов, хранящих данные, или выборку нескольких записей одной таблицы из базы данных.

Пример получения модели списка для модуля новостей:

$oNewsModelList = AMI::getResourceModel('news/table')->getList();

Результат: экземпляр объекта AmiMultifeeds_News_TableList

Для того чтобы в списке появились данные, необходимо уточнить условия выборки и дать команду на выполнение запроса получения данных.

Во первых, необходимо указать какие поля модели будут необходимы списку:

$oNewsModelList->addColumns(array('id', 'header', 'announce'));

Во вторых, конкретизировать условия выборки:

$oNewsModelList->addWhereDef(
    DB_Query::getSnippet("AND (date BETWEEN %s AND %s) AND public = %s")
        ->q(
            // SQL formatted date from request
            AMI_Lib_Date::formatDateTime(
                AMI::getSingleton('env/request')->get('date_from'),
                AMI_Lib_Date::FMT_DATE,
                true
            )
        )
        ->plain('NOW()')
        ->plain(1)
);

При необходимости, можно указать сортировку и лимит количества возвращаемых записей:

$oNewsModelList->addOrder('date', 'ASC');
$oNewsModelList->setLimitParameters(0, 10);

И загрузить данные:

$oNewsModelList->load();

Для получения элементов списка, можно использовать оператор foreach:

foreach($oNewsModelList as $oNewsModelItem){
    $header = $oNewsModelItem->header;
}

При использовании генератора решений можно указать будет ли модуль входящий в решение содержать компоненту списка элементов модуля

Полный список методов модели списка доступен в Amiro.CMS API Reference.

Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2021 © Amiro.CMS Все права защищены.