Трейт ModelAwareTrait
Предоставляет функциональность для загрузки классов таблиц и других репозиториев на свойства объекта-хоста.
Примеры пользователей этого трейта — Cake\Controller\Controller и Cake\Console\Shell.
Прямые пользователи
Косвенные пользователи
- Cake\Controller\ErrorController
- Cake\Shell\CacheShell
- Cake\Shell\Task\AssetsTask
- Cake\Shell\Task\CommandTask
- Cake\Shell\Task\ExtractTask
- Cake\Shell\Task\LoadTask
- Cake\Shell\Task\UnloadTask
- Cake\Shell\VersionShell
- Cake\Shell\CommandListShell
- Cake\Shell\CompletionShell
- Cake\Shell\HelpShell
- Cake\Shell\I18nShell
- Cake\Shell\OrmCacheShell
- Cake\Shell\PluginShell
- Cake\Shell\RoutesShell
- Cake\Shell\ServerShell
Краткое описание свойств
-
$_modelFactoriesprotectedСписок переопределенных функций фабрики моделей.array -
$_modelTypeprotectedТип модели для использования.string -
$modelClasspublicstringОсновное имя класса модели этого объекта. Должно быть во множественном числе. CakePHP не будет склонять имя.
Краткое описание методов
- _setModelClass() protectedУстановка свойств modelClass и modelKey на основе соглашений.
- getModelType() publicПолучение типа модели, который будет использоваться этим классом
- loadModel() publicЗагрузка и создание объектов репозитория, необходимых этому объекту
- modelFactory() publicПереопределение существующей вызываемой функции для генерации репозиториев заданного типа.
- modelType() publicУстановить или получить тип модели, который будет использоваться этим классом
- setModelType() publicУстановить тип модели, который будет использоваться этим классом
Подробное описание методов
_setModelClass()source protected
_setModelClass( string $name )
Установка свойств modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны
Параметры
- строка
$name - Имя класса.
getModelType()source public
getModelType( )
Получение типа модели, который будет использоваться этим классом
Возвращаемое значение
строкаloadModel()source public
loadModel( string|null $modelClass null , string|null $modelType null )
Загрузка и создание объектов репозитория, необходимых этому объекту
Обычно используется для загрузки объектов таблиц ORM по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращаемое значение
Cake\Datasource\RepositoryInterfaceСозданный экземпляр модели.
Исключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentException
При использовании типа, который не был зарегистрирован.
UnexpectedValueException
Если тип модели не определен
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределение существующей вызываемой функции для генерации репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция фабрики.
- вызываемая функция
$factory - Функция фабрики, используемая для создания экземпляров.
modelType()source public
modelType( string|null $modelType null )
Установить или получить тип модели, который будет использоваться этим классом
Устаревшее
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- строка|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращаемое значение
строка|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Установить тип модели, который будет использоваться этим классом
Параметры
- строка
$modelType - Тип модели
Возвращаемое значение
$this
Подробное описание свойств
$modelClasssource
public строка
Основное имя класса модели этого объекта. Должно быть во множественном числе. CakePHP не будет склонять имя.
Пример: для объекта с именем 'Комментарии', modelClass будет 'Комментарии'. Классы плагинов должны использовать имена в стиле Plugin.Comments для корректной загрузки моделей из соответствующего плагина.
© 2005–2018 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/3.5/class-Cake.Datasource.ModelAwareTrait.html