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;;