Trait ModelAwareTrait
Предоставляет функциональность для загрузки классов таблиц и других репозиториев в свойства объекта-хоста.
Примеры пользователей этого трейта — Cake\Controller\Controller и Cake\Console\Shell.
Краткое описание свойств
-
$_modelFactories protected
(callableCake\Datasource\Locator\LocatorInterface)[]Список переопределённых функций фабрики моделей.
-
$_modelType protected
stringТип модели для использования.
-
$modelClass protected
string|nullИмя основного класса модели этого объекта. Должно быть во множественном числе. CakePHP не будет склонять имя.
Краткое описание методов
-
_setModelClass() protected
Установить свойство modelClass на основе соглашений.
-
getModelType() public
Получить тип модели, используемый этим классом
-
loadModel() public
Загружает и создаёт объекты репозиториев, необходимые этому объекту
-
modelFactory() public
Переопределить существующую вызываемую функцию для генерации репозиториев заданного типа.
-
setModelType() public
Установить тип модели, используемый этим классом
Подробное описание методов
_setModelClass() protected
_setModelClass(string $name): void
Установить свойство modelClass на основе соглашений.
Если свойство уже установлено, оно не будет перезаписано
Параметры
-
string$name Имя класса.
Возвращает
voidgetModelType() public
getModelType(): string
Получить тип модели, используемый этим классом
Возвращает
stringloadModel() public
loadModel(string|null $modelClass = null, string|null $modelType = null): Cake\Datasource\RepositoryInterface
Загружает и создаёт объекты репозиториев, необходимые этому объекту
Обычно используется для загрузки объектов ORM Table, если они необходимы. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
-
string|null$modelClass optional Имя класса модели для загрузки. По умолчанию $this->modelClass. Имя может быть псевдонимом, например
'Post'или полным именем класса, напримерApp\Model\Table\PostsTable::class.-
string|null$modelType optional Тип репозитория для загрузки. По умолчанию значение getModelType().
Возвращает
Cake\Datasource\RepositoryInterfaceВыбрасывает
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
UnexpectedValueExceptionЕсли аргумент $modelClass не предоставлен, а свойство ModelAwareTrait::$modelClass пустое.
modelFactory() public
modelFactory(string $type, callableCake\Datasource\Locator\LocatorInterface $factory): void
Переопределить существующую вызываемую функцию для генерации репозиториев заданного типа.
Параметры
-
string$type Имя типа репозитория, для которого предназначена функция фабрики.
-
callableCake\Datasource\Locator\LocatorInterface$factory Функция фабрики, используемая для создания экземпляров.
Возвращает
voidsetModelType() public
setModelType(string $modelType): $this
Установить тип модели, используемый этим классом
Параметры
-
string$modelType Тип модели
Возвращает
$thisПодробное описание свойств
$_modelFactories protected
Список переопределённых функций фабрики моделей.
Тип
(callableCake\Datasource\Locator\LocatorInterface)[]$_modelType protected
Тип модели для использования.
Тип
string$modelClass protected
Имя основного класса модели этого объекта. Должно быть во множественном числе. CakePHP не будет склонять имя.
Пример: для объекта с именем 'Комментарии', моделью будет 'Комментарии'. Классы плагинов должны использовать имена в стиле Plugin.Comments для правильной загрузки моделей из соответствующего плагина.
Используйте пустую строку, чтобы не использовать автоматическую загрузку для этого объекта. Null автоматически определяет на основе имени контроллера.
Тип
string|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/trait-Cake.Datasource.ModelAwareTrait.html