BrandItem
Внимание! Мы рекомендуем вам прочитать разделы Архитектура, Класс ElementItem, Класс ElementCollection для полного понимания архитектуры проекта.
Внимание! BrandItem расширяет класс ElementItem. Все доступные методы класса ElementItem вы можете найти в разделе.
Список полей
| Имя | Тип | Описание |
|---|---|---|
| id | int |
|code|string|Unique element code that can be used in our custom plugins or theme templates |
|description|string| |
|images|\October\Rain\Database\Collection, \System\Models\File[]| |
|name|string| |
|preview_image|\System\Models\File| |
|preview_text|string| |
|slug|string| |
Список методов:
getPageUrl( [$sPageCode = 'brand'], [$arRemoveParamList = []]))
- $sPageCode - имя страницы файла
- $arRemoveParamList - список необязательных параметров URL, которые необходимо удалить при генерации URL страницы
Метод возвращает URL-адрес страницы бренда. Метод получает свойства компонента BrandPage, прикрепленного к странице, и компилирует параметр: slug для генерации URL страницы.
Расширение
Вы можете добавлять динамические методы и свойства в класс элемента с помощью расширяющих конструкторов. Это функция OctoberCMS по умолчанию.
Вы можете добавить настраиваемые поля в $cached массив модели бренда.
Brand::extend(function($obBrand) {
/** @var Brand $obBrand */
$obBrand->fillable[] = 'my_filed';
$obBrand->addCachedField(['my_fied']);
});
...
$obBrandItem = BrandItem::make(1);
echo $obBrandItem->my_field;
Вы можете добавить настраиваемые поля в массив кэшированных данных, используя свой собственный метод. Вам нужно добавить динамический метод в класс BrandItem и добавить имя вашего метода в массив $arExtendResult.
BrandItem::extend(function($obBrandItem) {
/** @var BrandItem $obBrandItem */
$obBrandItem->>arExtendResult[] = 'addMyProperty';
$obBrandItem->addDynamicMethod('addMyProperty', function() use ($obBrandItem) {
/** @var Brand $obBrand */
$obBrand = $obBrandItem->getObject();
$obBrandItem->setAttribute('my_property', $obBrand->my_property);
});
});
...
$obBrandItem = BrandItem::make(1);
echo $obBrandItem->my_property;;