Spec-Zone.ru › CakePHP 4.2

Trait ModelAwareTrait

Предоставляет функциональность для загрузки классов таблиц и других репозиториев в свойства объекта-хоста.

Примеры пользователей этого трейта — Cake\Controller\Controller и Cake\Console\Shell.

Пространство имён: Cake\Datasource

Краткое описание свойств

  • $_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

Имя класса.

Возвращает

void

getModelType() public

getModelType(): string

Получить тип модели, используемый этим классом

Возвращает

string

loadModel() 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

Функция фабрики, используемая для создания экземпляров.

Возвращает

void

setModelType() 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API