Jump to content

Контейнеры

В большинстве случаев ваши Ноды будут контейнером для элементов контента - это типичная структура, используемая большинством приложений. Модели нод и модели их элементов контента предоставляют ряд методов для работы друг с другом в таких отношениях. Эта взаимосвязь состоит из двух частей: функциональности, которая становится доступной для контейнера (т.е. Ноды), и функциональности, которая становится доступной для элементов контента в этой ноде. 

 

Настройка модели ноды

В вашей модели ноды вы должны указать название модели элемента контента, который вы используете.

public static $contentItemClass = 'string';

Например, в модели ноды Форум, мы должны указать модель элемента контента следующим образом:

public static $contentItemClass = 'IPS\forums\Topic';

Настройка модели элемента контента

В модели элемента контент вы должны указать название используемой модели ноды.

public static $containerNodeClass = 'string';

Например, в модели ноды Topic, мы укажем модель ноды таким образом

public static $containerNodeClass = 'IPS\forums\Forum';

Кроме того, вам нужно добавить ключ с именем container к свойству $databaseColumnMap, значение которого должно быть именем столбца в таблице базы данных, который содержит ID ноды, которая является родительской для каждого элемента контента.

protected static $databaseColumnMap = array(
	'container' => 'parent_id',
	//other column maps...
);

Геттеры/Сеттеры, доступные для модели ноды

После установления двусторонней привязки эти дополнительные геттеры и сеттеры становятся доступными для класса вашей модели. Все они определены в базовом классе модели ноды, и по умолчанию все методы get__* возвращают NULL, тогда как все методы set__* ничего не делают. Вы можете переопределить их в своем собственном классе, если вам нужно отслеживать значения.




Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy