Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
инвентаризация:dev:model:fields [2022/08/13 08:39] admin [Инвентаризация: model:fields] |
инвентаризация:dev:model:fields [2025/05/20 08:03] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{tag> | + | {{tag> |
- | ====== Инвентаризация: | + | ====== Инвентаризация: |
Описание атрибутов модели делаем в одной функции: | Описание атрибутов модели делаем в одной функции: | ||
- | <code php> | + | <code php> |
- | return [ | + | /** @var string как называется один экземпляр модели (для страницы Create -> Новый объект) */ |
- | [' | + | public static $title=' |
- | ' | + | |
- | ' | + | /** @var string как называется список моделей (для страницы Index) */ |
- | ' | + | public static $titles=' |
- | ' | + | |
+ | /** @var string надпись на кнопке создания нового объекта в списке */ | ||
+ | public static $addButtonText=' | ||
+ | |||
+ | /** @var null|string подсказка для кнопки создания нового объекта */ | ||
+ | public static $addButtonHint=null; | ||
+ | |||
+ | /** @var string Префикс для страницы Create (Новый $title) */ | ||
+ | public static $newItemPrefix=' | ||
+ | |||
+ | public $parentAttr=' | ||
+ | | ||
+ | return [ | ||
+ | [' | ||
+ | // | ||
+ | | ||
+ | | ||
+ | ' | ||
+ | | ||
+ | | ||
+ | ' | ||
+ | | ||
+ | ' | ||
+ | | ||
+ | // - boolean - да / нет (чекбокс) | ||
+ | // - toggle - это как boolean, но только для 0 и 1 есть свои названия, напр сервис/ | ||
+ | // - radios - это как toggle, только значений может | ||
+ | // - list - это как radios, только значений прям много и оформляется в виде dropdown | ||
+ | // - ntext - textarea (простой текст без форматирования с конвертацией nl -> <br> при рендере) | ||
+ | // - text - текст с форматированием (какой формат прописывается в параметрах) | ||
+ | // - date - дата | ||
+ | // - datetime - дата/ | ||
+ | // - ips - список IP | ||
+ | // - macs - список MAC | ||
+ | // - urls - список URL | ||
+ | // - link - одиночная ссылка | ||
+ | // - string - обычный текст (по умолчанию) | ||
+ | ' | ||
+ | //чем заполнить селектор в форме, если значение не введено | ||
+ | ' | ||
+ | //поле наследуемое (если не задано в этом объекте, | ||
+ | ' | ||
+ | // | ||
+ | //при наличии объектов в этом поле, считаем что | ||
+ | // | ||
+ | //(если не объявлять явно, определяется из $linkSchema) | ||
+ | ' | ||
+ | //при вызове функции absorb это | ||
+ | // - false - нет (по умолчанию для полей - "не обратных | ||
+ | // - ' | ||
+ | // - true - да (по умолчанию | ||
+ | ' | ||
+ | //что нужно заджойнить при отображении этого | ||
+ | ' | ||
+ | ], | ||
+ | ' | ||
] | ] | ||
- | ] | + | |
- | }</ | + | |
+ | /** | ||
+ | * @return array[] Ссылками на объекты каких классов являются атрибуты | ||
+ | * $linksSchema=[ | ||
+ | * ' | ||
+ | * Service:: | ||
+ | * ' | ||
+ | | ||
+ | | ||
+ | | ||
+ | * ' | ||
+ | * ' | ||
+ | * ], | ||
+ | * ]; | ||
+ | */ | ||
+ | public $linksSchema=[ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | /** | ||
+ | * @inheritdoc | ||
+ | */ | ||
+ | public function attributeLabels() | ||
+ | { | ||
+ | $labels=[]; | ||
+ | foreach ($this-> | ||
+ | if (isset($data[' | ||
+ | $labels[$key]=$data[' | ||
+ | return $labels; | ||
+ | | ||
+ | |||
+ | /** | ||
+ | * @inheritdoc | ||
+ | */ | ||
+ | public function attributeHints() | ||
+ | { | ||
+ | $hints=[]; | ||
+ | foreach ($this-> | ||
+ | if (isset($data[' | ||
+ | $hints[$key]=$data[' | ||
+ | return $hints; | ||
+ | } | ||
+ | |||
+ | </ |