Описание ModelAwareTrait
Обеспечивает функциональность для загрузки классов таблиц и других репозиториев на свойства объекта-хоста.
Примеры пользователей этого трейта — Cake\Controller\Controller и Cake\Console\Shell.
Устарело: 4.3.0 Используйте `Cake\ORM\Locator\LocatorAwareTrait` вместо него.
Краткое описание свойств
- $_modelFactories protected
array<callableCake\Datasource\Locator\LocatorInterface>Список переопределённых функций фабрики моделей.
- $_modelType protected
stringТип модели для использования.
- $modelClass protected deprecated
string|nullОсновное имя класса модели объекта. Должно быть в множественном числе. CakePHP не будет склонять имя.
Краткое описание методов
-
_setModelClass() protected
Установить свойство modelClass на основе соглашений.
-
getModelType() public
Получить тип модели, используемый этим классом
-
loadModel() public deprecated
Загружает и создаёт объекты репозитория, необходимые для этого объекта
-
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 по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
-
string|null$modelClass необязательно Имя класса модели для загрузки. По умолчанию — $this->modelClass. Имя может быть псевдонимом, как
'Post'или полным именем класса, какApp\Model\Table\PostsTable::class.-
string|null$modelType необязательно Тип репозитория для загрузки. По умолчанию — значение getModelType().
Возвращает
Cake\Datasource\RepositoryInterfaceИсключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
UnexpectedValueExceptionЕсли аргумент $modelClass не указан, а значение свойства ModelAwareTrait::$modelClass пустое.
modelFactory() public
modelFactory(string $type, Cake\Datasource\Locator\LocatorInterface|callable $factory): void
Переопределить существующую вызываемую функцию для создания репозиториев заданного типа.
Параметры
-
string$type Имя типа репозитория, для которого предназначена функция фабрики.
-
Cake\Datasource\Locator\LocatorInterface|callable$factory Функция фабрики, используемая для создания экземпляров.
Возвращает
voidsetModelType() public
setModelType(string $modelType): $this
Установить тип модели, используемый этим классом
Параметры
-
string$modelType Тип модели
Возвращает
$thisПодробное описание свойств
$_modelFactories protected
Список переопределённых функций фабрики моделей.
Тип
array<callableCake\Datasource\Locator\LocatorInterface>$_modelType protected
Тип модели для использования.
Тип
string$modelClass protected deprecated
Основное имя класса модели объекта. Должно быть в множественном числе. CakePHP не будет склонять имя.
Пример: для объекта с именем 'Комментарии' modelClass будет 'Комментарии'. Классы плагинов должны использовать имена в формате Plugin.Comments для корректной загрузки моделей из соответствующего плагина.
Используйте пустую строку, чтобы не использовать автоматическую загрузку для этого объекта. Нуль автоматически определяет на основе имени контроллера.
Тип
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.3/trait-Cake.Datasource.ModelAwareTrait.html