Трейт ModelAwareTrait
Обеспечивает функциональность для загрузки классов таблиц и других репозиториев в свойства объекта-хоста.
Примеры пользователей этого трейта: Cake\Controller\Controller и Cake\Console\Shell.
Прямые пользователи
- Cake\Console\Command
- Cake\Console\Shell
- Cake\Controller\Controller
- Cake\Mailer\Mailer
- Cake\View\Cell
Косвенные пользователи
- Cake\Command\HelpCommand
- Cake\Command\VersionCommand
- Cake\Shell\SchemaCacheShell
- Cake\Shell\ServerShell
- Cake\Shell\Task\AssetsTask
- Cake\Shell\Task\CommandTask
- Cake\Shell\Task\ExtractTask
- Cake\Shell\Task\LoadTask
- Cake\Shell\Task\UnloadTask
- Cake\Controller\ErrorController
- Cake\Shell\CacheShell
- Cake\Shell\CommandListShell
- Cake\Shell\CompletionShell
- Cake\Shell\I18nShell
- Cake\Shell\OrmCacheShell
- Cake\Shell\PluginShell
- Cake\Shell\RoutesShell
Краткое описание свойств
-
$_modelFactoriesprotectedСписок переопределённых функций фабрики моделей.array -
$_modelTypeprotectedТип модели для использования.string -
$modelClasspublicstring|false|nullОсновное имя класса модели объекта. Должен быть во множественном числе. CakePHP не будет склонять имя.
Краткое описание методов
-
_setModelClass() protectedУстанавливает свойства modelClass и modelKey на основе соглашений.
-
getModelType() publicПолучить тип модели, который будет использоваться этим классом.
-
loadModel() publicЗагружает и создаёт объекты репозитория, необходимые для этого объекта.
-
modelFactory() 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 Table по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет брошено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null Имя класса модели для загрузки. По умолчанию $this->modelClass. Имя может быть псевдонимом, например,
'Post', или FQCN, например,App\Model\Table\PostsTable::class.- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
%%%CODE_BLOCK_14%%>Объект созданной модели.
Исключения
%%%CODE_BLOCK_15%%>Если класс модели не найден.
InvalidArgumentException
При использовании типа, который не зарегистрирован.
UnexpectedValueException
Если не определён тип модели
modelFactory() source public
modelFactory( string $type , callable $factory )
Переопределить существующую вызываемую функцию для генерации репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция фабрики.
- вызываемая функция
$factory - Функция фабрики, используемая для создания экземпляров.
modelType() source public deprecated
modelType( string|null $modelType = null )
Установить или получить тип модели, который будет использоваться этим классом.
Устарело
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- строка|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего.
Возвращает
строка|%%%CODE_BLOCK_21%%>$this
setModelType() source public
setModelType( string $modelType )
Установить тип модели, который будет использоваться этим классом.
Параметры
- строка
$modelType - Тип модели.
Возвращает
$this
Подробное описание свойств
$modelClass source
public строка|ложь|null
Основное имя класса модели объекта. Должен быть во множественном числе. CakePHP не будет склонять имя.
Пример: для объекта с именем «Комментарии» моделью будет «Комментарии». Классы плагинов должны использовать имена в формате Plugin.Comments для правильной загрузки моделей из соответствующего плагина.
Используйте ложь, чтобы не использовать автоматическую загрузку для этого объекта. 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/3.8/class-Cake.Datasource.ModelAwareTrait.html