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

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


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


Модель элемента

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

  1. Загрузку данных в объект из хранилища;
  2. Сохранение данных из объекта в хранилище;
  3. Удаление одного элемента из хранилища;
  4. Получение свойств(а) загруженного элемента;
  5. Установка свойств(а) загруженному элемента;
  6. Установка списка свойств, для которых будет запоминаться исходное состояние и получение изменившихся свойств.

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

Внимание

Модификационные действия модели элемента, такие как сохранение и удаление, выполняются только в полном окружении. 

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

$oNewsModelItem = AMI::getResourceModel('news/table')->getItem();

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

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

$oModelItem = getResourceModel($modId . '/table')->find($id);

Или загрузить данные в существующую пустую модель:

$oModelItem = getResourceModel($modId . '/table')->getItem();
$oModelItem->addSearchCondition(array('id' => $id));
$oModelItem->load();

Если для работы с моделью элемента не требуются значения абсолютно всех полей, рекомендуется перед вызовом load указывать список загружаемых полей:

$oModelItem->addFields(array('*'));
$oModelItem = getResourceModel($modId . '/table')->find($id, array(*));

После загрузки данных, значения полей элемента доступны как свойства объекта модели элемента:

$header = $oModelItem->header;
$announce = $oModelItem->announce;

Значения полей можно изменять:

$oModelItem->header = 'new header';

Нужно иметь в виду, что при сохранении элемента, такие значения квотируются (обрамляются кавычками).
Для того чтобы передать полю модели элемента неквотируемое значение (например SQL функцию), нужно использовать сниппет.

$oModelItem->date = DB_Query:getSnippet('NOW()');

Сохранение элемента:

$oModelItem->save();

Удаление элемента:

$oModelItem->delete();

Получение идентификатора записи (например, после сохранения нового элемента):

$oModelItem->getId();

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

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