Spec-Zone.ru › CakePHP 4.2

Класс Таблица

Представляет отдельную таблицу базы данных.

Предоставляет методы для извлечения данных из неё и управляет ассоциациями этой таблицы с другими таблицами. Можно создавать несколько экземпляров этого класса для одной и той же таблицы базы данных с различными псевдонимами, что позволяет более богатым и выразительным образом обращаться к структуре вашей базы данных.

Извлечение данных

Основной способ извлечения данных — использование Table::find(). Смотрите этот метод для получения дополнительной информации.

Динамические методы поиска

В дополнение к стандартным методам поиска find($type), CakePHP предоставляет динамические методы поиска. Эти методы позволяют легко задавать основные условия. Например, чтобы отфильтровать пользователей по имени пользователя, вы бы вызвали

$query = $users->findByUsername('mark');

Также можно комбинировать условия по нескольким полям, используя либо Or, либо And:

$query = $users->findByUsernameOrEmail('mark', 'mark@example.org');

Массовое обновление/удаление

Можно использовать Table::updateAll() и Table::deleteAll() для массового обновления/удаления. Следует учитывать, что события не будут срабатывать для массовых обновлений/удалений.

События

Объекты Table испускают несколько событий в качестве событий жизненного цикла во время операций поиска, удаления и сохранения. Все события используют пакет событий CakePHP:

  • Model.beforeFind Срабатывает перед каждой операцией поиска. Остановив событие и передав возвращаемое значение, можно полностью пропустить операцию поиска. Любые изменения, внесённые в экземпляр $query, будут сохранены для последующего поиска. Параметр $primary указывает, является ли это основным запросом или ассоциированным запросом.

  • Model.buildValidator Позволяет слушателям изменять правила валидации для указанного валидатора.

  • Model.buildRules Позволяет слушателям изменять проверку правил, добавив новые правила.

  • Model.beforeRules Срабатывает перед тем, как сущность будет проверена с использованием средства проверки правил. Остановив это событие, вы можете вернуть окончательное значение операции проверки правил.

  • Model.afterRules Срабатывает после того, как правила были проверены на сущности. Остановив это событие, вы можете вернуть окончательное значение операции проверки правил.

  • Model.beforeSave Срабатывает перед сохранением каждой сущности. Остановка этого события приведёт к прерыванию операции сохранения. Когда событие остановлено, результат события будет возвращён.

  • Model.afterSave Срабатывает после сохранения сущности.

  • Model.afterSaveCommit Срабатывает после завершения транзакции, в которой обернута операция сохранения. Также срабатывает для неатомных сохранений, где операции базы данных неявно подтверждаются. Событие срабатывает только для основной таблицы, на которой напрямую вызван save(). Событие не срабатывает, если транзакция инициирована до вызова save.

  • Model.beforeDelete Срабатывает перед удалением сущности. Остановкой этого события вы прервете операцию удаления.

  • Model.afterDelete Срабатывает после удаления сущности.

Обработчики событий

Вы можете подписаться на перечисленные выше события в своих классах таблиц, реализовав следующие методы жизненного цикла:

  • beforeFind(EventInterface $event, Query $query, ArrayObject $options, boolean $primary)
  • beforeMarshal(EventInterface $event, ArrayObject $data, ArrayObject $options)
  • afterMarshal(EventInterface $event, EntityInterface $entity, ArrayObject $options)
  • buildValidator(EventInterface $event, Validator $validator, string $name)
  • buildRules(RulesChecker $rules)
  • beforeRules(EventInterface $event, EntityInterface $entity, ArrayObject $options, string $operation)
  • afterRules(EventInterface $event, EntityInterface $entity, ArrayObject $options, bool $result, string $operation)
  • beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options)
  • afterSave(EventInterface $event, EntityInterface $entity, ArrayObject $options)
  • afterSaveCommit(EventInterface $event, EntityInterface $entity, ArrayObject $options)
  • beforeDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options)
  • afterDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options)
  • afterDeleteCommit(EventInterface $event, EntityInterface $entity, ArrayObject $options)
Пространство имён: Cake\ORM
См.: \Cake\Event\EventManager для справки по системе событий.
Ссылка: https://book.cakephp.org/4/en/orm/table-objects.html#event-list

Константы

  • string
    BUILD_VALIDATOR_EVENT
    'Model.buildValidator'

    Название события, отправляемого при построении валидатора.

  • string
    DEFAULT_VALIDATOR
    'default'

    Имя набора валидации по умолчанию.

  • string
    IS_UNIQUE_CLASS
    IsUnique::class

    Имя класса IsUnique, которое используется.

  • string
    RULES_CLASS
    RulesChecker::class

    Имя класса правил, которое используется.

  • string
    VALIDATOR_PROVIDER_NAME
    'table'

    Псевдоним, который назначается этому объекту в качестве валидаторов.

Резюме свойств

  • $_alias protected
    string|null

    Человеческое имя, присвоенное этому экземпляру. Можно иметь несколько объектов, представляющих одну и ту же таблицу базы данных, используя различные псевдонимы.

  • $_associations protected
    Cake\ORM\AssociationCollection

    Контейнер ассоциаций для этой таблицы.

  • $_behaviors protected
    Cake\ORM\BehaviorRegistry

    BehaviorRegistry для этой таблицы

  • $_connection protected
    Cake\Database\Connection|null

    Экземпляр соединения

  • $_displayField protected
    string|string[]|null

    Имя поля, представляющего удобочитаемое представление строки

  • $_entityClass protected
    string

    Имя класса, представляющего отдельную строку для этой таблицы

  • $_eventClass protected
    string

    Имя класса по умолчанию для новых объектов событий.

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    Экземпляр Cake\Event\EventManager, который использует этот объект для отправки внутренних событий.

  • $_primaryKey protected
    string|string[]|null

    Имя поля, представляющего первичный ключ в таблице

  • $_registryAlias protected
    string|null

    Ключ реестра, используемый для создания объекта этой таблицы

  • $_rulesChecker protected
    Cake\Datasource\RulesChecker

    Правила области, применяемые к сущностям, сохраняемым этой таблицей

  • $_schema protected
    Cake\Database\Schema\TableSchemaInterface|null

    Объект схемы, содержащий описание полей этой таблицы

  • $_table protected
    string|null

    Имя таблицы, как она может быть найдена в базе данных

  • $_validatorClass protected
    string

    Класс валидатора.

  • $_validators protected
    Cake\Validation\Validator[]

    Список объектов валидации, индексированных по имени

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

  • __call() public

    Обработка делегирования поведения + динамические поиск.

  • __construct() public

    Инициализирует новый экземпляр

  • __debugInfo() public

    Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.

  • __get() public

    Возвращает ассоциацию, именованную по переданному значению, если она существует, в противном случае выбрасывает исключение.

  • __isset() public

    Возвращает, существует ли ассоциация, именованная по переданному значению, для этой таблицы.

  • _deleteMany() protected
  • _dynamicFinder() protected

    Предоставляет динамические методы findBy и findAllBy.

  • _executeTransaction() protected

    Обрабатывает логику выполнения работника внутри транзакции.

  • _getFindOrCreateQuery() protected

    Получает объект запроса для findOrCreate().

  • _initializeSchema() protected

    Переопределите эту функцию, чтобы изменить схему, используемую этой таблицей. Эта функция вызывается только после извлечения схемы из базы данных. Если вы хотите предоставить свою собственную схему для этой таблицы, не затрагивая базу данных, вы можете переопределить schema() или ввести определения через этот метод.

  • _insert() protected

    Вспомогательная функция для обработки вставки данных сущности в таблицу

  • _newId() protected

    Генерирует значение первичного ключа для новой записи.

  • _onSaveSuccess() protected

    Обрабатывает сохранение дочерних ассоциаций и выполнение логики afterSave после успешного сохранения сущности для этой таблицы.

  • _processDelete() protected

    Выполняет операцию удаления.

  • _processFindOrCreate() protected

    Выполняет фактический поиск и/или создание сущности на основе переданных параметров.

  • _processSave() protected

    Выполняет фактическое сохранение сущности на основе переданных параметров.

  • _saveMany() protected
  • _setFieldMatchers() protected

    Из массива параметров проверьте, являются ли ключи, описанные в $keys, массивами, и измените значения на замыкания, которые будут конкатенировать каждую из свойств в массиве значений при передаче строки.

  • _transactionCommitted() protected

    Проверяет, выполнил ли вызывающий объект коммит транзакции.

  • _update() protected

    Вспомогательная функция для обработки обновления данных сущности в таблице

  • addAssociations() public

    Настройка множественных ассоциаций.

  • addBehavior() public

    Добавить поведение.

  • addBehaviors() public

    Добавляет массив поведений в коллекцию поведений таблицы.

  • aliasField() public

    Алиас поля с текущим алиасом таблицы.

  • associations() public

    Получить коллекцию ассоциаций для этой таблицы.

  • behaviors() public

    Возвращает реестр поведения для этой таблицы.

  • belongsTo() public

    Создает новую ассоциацию BelongsTo между этой таблицей и целевой таблицей. Ассоциация "belongs to" представляет собой отношение N-1, где эта таблица является стороной N, а для каждой записи в этой таблице существует одна связанная запись в целевой таблице.

  • belongsToMany() public

    Создает новую ассоциацию BelongsToMany между этой таблицей и целевой таблицей. Ассоциация "belongs to many" представляет собой отношение M-N.

  • buildRules() public

    Возвращает объект RulesChecker после его модификации.

  • callFinder() public

    Вызывает метод поиска непосредственно и применяет его к переданному запросу. Если запрос не передан, будет создан и возвращен новый запрос.

  • checkAliasLengths() protected

    Проверяет, соответствуют ли все комбинации имени таблицы + имени столбца, используемые для запросов, максимально допустимой длине, разрешенной драйвером базы данных.

  • checkRules() public

    Возвращает, соответствует ли переданная сущность всем правилам, хранящимся в проверяющем правила.

  • createValidator() protected

    Создает валидатор, используя пользовательский метод внутри вашего класса.

  • defaultConnectionName() public static

    Получить имя по умолчанию подключения.

  • delete() public

    Удалить одну сущность.

  • deleteAll() public

    Удаляет все записи, соответствующие заданным условиям.

  • deleteMany() public

    Удаляет несколько сущностей таблицы.

  • deleteManyOrFail() public

    Удаляет несколько сущностей таблицы.

  • deleteOrFail() public

    Попытаться удалить сущность или выбросить PersistenceFailedException, если сущность новая, не имеет значения первичного ключа, проверки правил приложения завершились неудачей или удаление было прервано обратным вызовом.

  • dispatchEvent() public

    Обертка для создания и отправки событий.

  • exists() public

    Возвращает true, если в этом репозитории есть записи, соответствующие указанным условиям.

  • find() public

    Создает новый запрос для этого репозитория и применяет некоторые значения по умолчанию, основанные на типе выбранного поиска.

  • findAll() public

    Возвращает запрос в том виде, в котором он был передан.

  • findAssociation() protected

    Возвращает объект ассоциации, сконфигурированный для указанного алиаса, если он есть.

END_OF_DOCUMENT_MARKER
  • findList() public

    Настраивает объект запроса, чтобы результаты отображались как индексированный массив, что полезно в тех местах, где требуется список, например, для заполнения элементов выбора input.

  • findOrCreate() public

    Находит существующую запись или создаёт новую.

  • findThreaded() public

    Результаты для этого поиска будут вложенным массивом и подходят, если вы хотите использовать поле parent_id данных вашей модели для построения вложенных результатов.

  • get() public

    Возвращает единственную запись после её нахождения по первичному ключу; если запись не найдена, этот метод генерирует исключение.

  • getAlias() public

    Возвращает псевдоним таблицы.

  • getAssociation() public

    Возвращает объект ассоциации, настроенный для указанного псевдонима.

  • getBehavior() public

    Получает поведение из реестра.

  • getConnection() public

    Возвращает экземпляр соединения.

  • getDisplayField() public

    Возвращает поле отображения.

  • getEntityClass() public

    Возвращает класс, используемый для гидратации строк для этой таблицы.

  • getEventManager() public

    Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.

  • getPrimaryKey() public

    Возвращает имя поля первичного ключа.

  • getRegistryAlias() public

    Возвращает ключ реестра таблицы, используемый для создания этого экземпляра таблицы.

  • getSaveOptionsBuilder() public

    Получает экземпляр SaveOptionsBuilder.

  • getSchema() public

    Возвращает объект схемы таблицы, описывающий свойства этой таблицы.

  • getTable() public

    Возвращает имя таблицы базы данных.

  • getValidator() public

    Возвращает правила валидации, помеченные тегом $name. Возможно наличие нескольких наборов правил с разными именами, что полезно, когда вам нужны различные правила при сохранении из разных процедур в вашей системе.

  • hasAssociation() public

    Проверяет, существует ли определённая ассоциация в этом экземпляре Table.

  • hasBehavior() public

    Проверяет, загружено ли поведение с данным псевдонимом.

  • hasField() public

    Проверка наличия определённого поля/колонки в таблице.

  • hasFinder() public

    Возвращает true, если поиск существует для таблицы.

  • hasMany() public

    Создаёт новую ассоциацию HasMany между этой таблицей и целевой таблицей. Ассоциация "has many" — это отношение 1-N.

  • hasOne() public

    Создаёт новую ассоциацию HasOne между этой таблицей и целевой таблицей. Ассоциация "has one" — это отношение 1-1.

  • hasValidator() public

    Проверяет, установлен ли валидатор.

  • implementedEvents() public

    Получение модельных обратных вызовов, к которым обращается эта таблица.

  • initialize() public

    Инициализация экземпляра таблицы. Вызывается после конструктора.

  • loadInto() public

    Загружает указанные ассоциации в переданную сущность или список сущностей, выполняя дополнительные запросы в базе данных и объединяя результаты в соответствующие свойства.

  • marshaller() public

    Получает объект, используемый для преобразования данных массива в объекты.

  • newEmptyEntity() public

    Создаёт новый объект сущности.

  • newEntities() public

    Создаёт список сущностей + связанных сущностей из массива.

  • newEntity() public

    Создаёт новую сущность + связанные сущности из массива.

  • patchEntities() public

    Объединяет каждый из переданных элементов в сущности, найденные в $entities, учитывая настроенные доступные поля в сущностях. Объединение выполняется путём сопоставления первичного ключа в каждом из элементов в $data и $entities.

  • patchEntity() public

    Объединяет переданную $data в $entity, учитывая настроенные доступные поля в сущности. Возвращает ту же сущность после изменения.

  • query() public

    Создаёт новый экземпляр Query для таблицы.

  • removeBehavior() public

    Удаляет поведение из реестра поведения этой таблицы.

  • rulesChecker() public

    Возвращает RulesChecker для этого экземпляра.

  • save() public

    Сохраняет сущность на основе полей, помеченных как изменённые, и возвращает ту же сущность после успешного сохранения или false в случае ошибки.

  • saveMany() public

    Сохраняет множество сущностей таблицы.

  • saveManyOrFail() public

    Сохраняет множество сущностей таблицы.

  • saveOrFail() public

    Попытаться сохранить сущность или бросить PersistenceFailedException, если проверки правил приложения завершились неудачей, сущность содержит ошибки или сохранение было прервано обратным вызовом.

  • setAlias() public

    Устанавливает псевдоним таблицы.

  • setConnection() public

    Устанавливает экземпляр соединения.

  • setDisplayField() public

    Устанавливает поле отображения.

  • setEntityClass() public

    Устанавливает класс, используемый для гидратации строк для этой таблицы.

  • setEventManager() public

    Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.

END_OF_DOCUMENT_MARKER
  • setPrimaryKey() public

    Устанавливает имя поля первичного ключа.

  • setRegistryAlias() public

    Устанавливает ключ реестра таблицы, используемый для создания экземпляра этой таблицы.

  • setSchema() public

    Устанавливает объект схемы таблицы, описывающий свойства этой таблицы.

  • setTable() public

    Устанавливает имя таблицы базы данных.

  • setValidator() public

    Этот метод сохраняет пользовательский валидатор под заданным именем.

  • subquery() public

    Создаёт новый экземпляр Query::subquery() для таблицы.

  • updateAll() public

    Обновить все соответствующие записи.

  • validateUnique() public

    Метод валидации, используемый для проверки уникальности значения для столбца. Он предназначен для использования с API валидации и не должен вызываться напрямую.

  • validationDefault() public

    Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор валидации по умолчанию в объект валидатора.

  • validationMethodExists() protected

    Проверяет существование метода валидации.

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

__call() public

__call(string $method, array $args): mixed

Обрабатывает делегирование поведения + динамические finders.

Если ваша таблица использует какие-либо поведения, вы можете вызывать их так, как будто они находятся в объекте таблицы.

Параметры

string $method

имя вызываемого метода

array $args

Список аргументов, переданных функции

Возвращает

mixed

Исключения

BadMethodCallException

__construct() public

__construct(array $config = [])

Инициализирует новый экземпляр

Массив $config понимает следующие ключи:

  • table: Имя таблицы базы данных для представления
  • alias: Псевдоним, который будет присвоен этой таблице (по умолчанию - имя таблицы)
  • connection: Экземпляр соединения для использования
  • entityClass: Полностью определенное имя класса сущности, который будет представлять строки в этой таблице.
  • schema: Объект \Cake\Database\Schema\TableSchemaInterface или массив, который может быть передан ему.
  • eventManager: Экземпляр менеджера событий для использования во внутренних событиях
  • behaviors: BehaviorRegistry. Как правило, не используется за пределами тестов.
  • associations: Экземпляр AssociationCollection.
  • validator: Экземпляр Validator, который назначается в качестве набора валидации "по умолчанию", или ассоциативный массив, где ключ - имя набора валидации, а значение - экземпляр Validator.

Параметры

array $config optional

Список параметров для этой таблицы

__debugInfo() public

__debugInfo(): array

Возвращает массив, который может быть использован для описания внутреннего состояния этого объекта.

Возвращает

array

__get() public

__get(string $property): Cake\ORM\Association

Возвращает ассоциацию, названную в соответствии с переданным значением, если она существует, в противном случае выдает исключение.

Параметры

string $property

имя ассоциации

Возвращает

Cake\ORM\Association

Исключения

RuntimeException
если ассоциация с таким именем не существует

__isset() public

__isset(string $property): bool

Возвращает, существует ли ассоциация с именем, указанным в переданном значении, для этой таблицы.

Параметры

string $property

имя ассоциации

Возвращает

bool

_deleteMany() protected

_deleteMany(arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities, arrayArrayAccess $options = []): Cake\Datasource\EntityInterface|null

Параметры

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities

Сущности для удаления.

arrayArrayAccess $options optional

Используемые параметры.

Возвращает

Cake\Datasource\EntityInterface|null

_dynamicFinder() protected

_dynamicFinder(string $method, array $args): Cake\ORM\Query

Предоставляет динамические методы findBy и findAllBy.

Параметры

string $method

Имя метода, который был вызван.

array $args

Список аргументов, переданных функции.

Возвращает

Cake\ORM\Query

Исключения

BadMethodCallException
когда отсутствуют аргументы или когда сочетаются and & or.

_executeTransaction() protected

_executeTransaction(callable $worker, bool $atomic = true): mixed

Обрабатывает логику выполнения работника внутри транзакции.

Параметры

callable $worker

Работник, который будет работать внутри транзакции.

bool $atomic optional

Выполнять ли работника внутри транзакции базы данных.

Возвращает

mixed

_getFindOrCreateQuery() protected

_getFindOrCreateQuery(array|callableCake\ORM\Query $search): Cake\ORM\Query

Получает объект запроса для findOrCreate().

Параметры

array|callableCake\ORM\Query $search

Критерии для поиска существующих записей.

Возвращает

Cake\ORM\Query

_initializeSchema() protected

_initializeSchema(Cake\Database\Schema\TableSchemaInterface $schema): Cake\Database\Schema\TableSchemaInterface

Переопределите эту функцию, чтобы изменить схему, используемую этой таблицей. Эта функция вызывается только после извлечения схемы из базы данных. Если вы хотите предоставить свою собственную схему для этой таблицы, не затрагивая базу данных, вы можете переопределить schema() или внедрить определения через этот метод.

Пример:

protected function _initializeSchema(\Cake\Database\Schema\TableSchemaInterface $schema) {
 $schema->setColumnType('preferences', 'json');
 return $schema;
}

Параметры

Cake\Database\Schema\TableSchemaInterface $schema

Определение таблицы, извлеченное из базы данных.

Возвращает

Cake\Database\Schema\TableSchemaInterface

_insert() protected

_insert(Cake\Datasource\EntityInterface $entity, array $data): Cake\Datasource\EntityInterface|false

Вспомогательная функция для обработки вставки данных сущности в таблицу

Параметры

Cake\Datasource\EntityInterface $entity

сущность, из которой были извлечены данные $data

array $data

фактические данные, которые необходимо сохранить

Возвращает

Cake\Datasource\EntityInterface|false

Исключения

RuntimeException
если не все первичные ключи были предоставлены или могли быть сгенерированы, когда таблица имеет составные первичные ключи. Или когда таблица не имеет первичного ключа.

_newId() protected

_newId(string[] $primary): string|null

Генерирует значение первичного ключа для новой записи.

По умолчанию используется система типов для генерации нового значения первичного ключа, если это возможно. Вы можете переопределить этот метод, если у вас есть особые требования к генерации идентификаторов.

Примечание: ORM не будет генерировать значения первичных ключей для составных первичных ключей. Вы можете переопределить _newId() в своем классе таблицы.

Параметры

string[] $primary

Столбцы первичного ключа, для которых необходимо получить новый ID.

Возвращает

string|null

_onSaveSuccess() protected

_onSaveSuccess(Cake\Datasource\EntityInterface $entity, ArrayObject $options): bool

Обрабатывает сохранение дочерних ассоциаций и выполняет логику afterSave после того, как сущность для этой таблицы была успешно сохранена.

Параметры

Cake\Datasource\EntityInterface $entity

сущность для сохранения

ArrayObject $options

параметры для использования в операции сохранения

Возвращает

bool

Исключения

Cake\ORM\Exception\RolledbackTransactionException
Если транзакция прерывается в событии afterSave.

_processDelete() protected

_processDelete(Cake\Datasource\EntityInterface $entity, ArrayObject $options): bool

Выполняет операцию удаления.

Удаляет предоставленную сущность. Удаляет строки из любых зависимых ассоциаций и очищает таблицы объединения для ассоциаций BelongsToMany.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность для удаления.

ArrayObject $options

Параметры для удаления.

Возвращает

bool

Исключения

InvalidArgumentException
если нет значений первичного ключа переданной сущности

_processFindOrCreate() protected

_processFindOrCreate(array|callableCake\ORM\Query $search, callable|null $callback = null, array $options = []): Cake\Datasource\EntityInterface|array

Выполняет фактический поиск и/или создание сущности на основе переданных параметров.

Параметры

array|callableCake\ORM\Query $search

Критерии для поиска существующей записи или вызываемый объект, который настроит запрос поиска.

callable|null $callback optional

Обратный вызов, который будет вызван для вновь созданных сущностей. Этот обратный вызов будет вызван до сохранения сущности.

array $options optional

Параметры для использования при сохранении.

Возвращает

Cake\Datasource\EntityInterface|array

Исключения

Cake\ORM\Exception\PersistenceFailedException
Когда сущность не может быть сохранена
InvalidArgumentException

_processSave() protected

_processSave(Cake\Datasource\EntityInterface $entity, ArrayObject $options): Cake\Datasource\EntityInterface|false

Выполняет фактическое сохранение сущности на основе переданных опций.

Параметры

Cake\Datasource\EntityInterface $entity

сущность, которую нужно сохранить

ArrayObject $options

опции для операции сохранения

Возвращает

Cake\Datasource\EntityInterface|false

Исключения

RuntimeException
При отсутствии некоторых первичных ключей у сущности.
Cake\ORM\Exception\RolledbackTransactionException
Если транзакция прервана в событии afterSave.

_saveMany() protected

_saveMany(arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities, arrayArrayAccessCake\ORM\SaveOptionsBuilder $options = []): arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface

Параметры

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities

Сущности для сохранения.

arrayArrayAccessCake\ORM\SaveOptionsBuilder $options optional

Опции, используемые при вызове Table::save() для каждой сущности.

Возвращает

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface

Исключения

Cake\ORM\Exception\PersistenceFailedException
Если сущность не удалось сохранить.
Exception
Если сущность не удалось сохранить.

_setFieldMatchers() protected

_setFieldMatchers(array $options, string[] $keys): array

Из массива опций проверяет, являются ли ключи, описанные в $keys, массивами, и изменяет значения на замыкания, которые будут конкатенировать каждую из свойств в массиве значений при передаче строки.

Это вспомогательная функция, используемая для форматировщиков результатов, которые могут принимать составные ключи при сравнении значений.

Параметры

array $options

исходные опции, переданные в поиск

string[] $keys

ключи для проверки в $options для создания соответствий из связанных значений

Возвращает

array

_transactionCommitted() protected

_transactionCommitted(bool $atomic, bool $primary): bool

Проверяет, выполнил ли вызывающий метод операцию подтверждения транзакции.

Параметры

bool $atomic

Истина, если использовалась атомарная транзакция.

bool $primary

Истина, если использовался первичный ключ.

Возвращает

bool

_update() protected

_update(Cake\Datasource\EntityInterface $entity, array $data): Cake\Datasource\EntityInterface|false

Вспомогательная функция для обработки обновления данных сущности в таблице

Параметры

Cake\Datasource\EntityInterface $entity

сущностный объект, из которого были извлечены данные

array $data

Фактические данные, которые необходимо сохранить

Возвращает

Cake\Datasource\EntityInterface|false

Исключения

InvalidArgumentException
При отсутствии данных первичного ключа.

addAssociations() public

addAssociations(array $params): $this

Настройка нескольких ассоциаций.

Принимает массив, содержащий набор имён таблиц, индексированных по типу ассоциации:

$this->Posts->addAssociations([
  'belongsTo' => [
    'Users' => ['className' => 'App\Model\Table\UsersTable']
  ],
  'hasMany' => ['Comments'],
  'belongsToMany' => ['Tags']
]);

Каждый тип ассоциации поддерживает несколько ассоциаций, где ключи являются псевдонимами, а значения — данными конфигурации ассоциации. Если используются числовые ключи, значения будут обрабатываться как псевдонимы ассоциаций.

Параметры

array $params

Набор ассоциаций для привязки (индексированный по типу ассоциации)

Возвращает

$this

См. также

\Cake\ORM\Table::belongsTo()
\Cake\ORM\Table::hasOne()
\Cake\ORM\Table::hasMany()
\Cake\ORM\Table::belongsToMany()

addBehavior() public

addBehavior(string $name, array $options = []): $this

Добавление поведения.

Добавляет поведение в коллекцию поведения этой таблицы. Поведения обеспечивают простой способ создания горизонтально переиспользуемых функций, которые могут предоставлять функциональность, подобную трейтам, и позволяют прослушивать события.

Пример:

Загрузка поведения с некоторыми настройками.

$this->addBehavior('Tree', ['parent' => 'parentId']);

Поведения обычно загружаются во время Table::initialize().

Параметры

string $name

Имя поведения. Может быть краткой ссылкой на класс.

array $options optional

Опции для использования поведения.

Возвращает

$this

Исключения

RuntimeException
Если поведение перегружается.

См. также

\Cake\ORM\Behavior

addBehaviors() public

addBehaviors(array $behaviors): $this

Добавляет массив поведений в коллекцию поведений таблицы.

Пример:

$this->addBehaviors([
     'Timestamp',
     'Tree' => ['level' => 'level'],
]);

Параметры

array $behaviors

Все загружаемые поведения.

Возвращает

$this

Исключения

RuntimeException
Если поведение перегружается.

aliasField() public

aliasField(string $field): string

Присваивает псевдоним полю с текущим псевдонимом таблицы.

Если поле уже имеет псевдоним, это приведет к ничегонеделанию.

Параметры

string $field

Поле для присвоения псевдонима.

Возвращает

string

associations() public

associations(): Cake\ORM\AssociationCollection

Получение коллекции ассоциаций для этой таблицы.

Возвращает

Cake\ORM\AssociationCollection

behaviors() public

behaviors(): Cake\ORM\BehaviorRegistry

Возвращает реестр поведения для этой таблицы.

Возвращает

Cake\ORM\BehaviorRegistry

belongsTo() public

belongsTo(string $associated, array $options = []): Cake\ORM\Association\BelongsTo

Создаёт новую ассоциацию BelongsTo между этой таблицей и целевой таблицей. Ассоциация «belongs to» — это отношение N-1, где эта таблица — сторона N, и для каждого записей в этой таблице существует единственная связанная запись в целевой таблице.

Целевая таблица может быть определена по ее имени, которое предоставлено в первом аргументе, или вы можете либо передать объект для инициализации, либо напрямую передать экземпляр объекта.

Массив опций принимает следующие ключи:

  • className: Имя класса объекта целевой таблицы
  • targetTable: Экземпляр объекта таблицы, который будет использоваться в качестве целевой таблицы
  • foreignKey: Имя поля, используемого в качестве внешнего ключа, если ложно, внешний ключ не будет использован
  • conditions: массив с перечнем условий для фильтрации объединения
  • joinType: Тип объединения (например, INNER)
  • strategy: Стратегия загрузки. Поддерживаются 'join' и 'select'.
  • finder: Метод поиска для загрузки записей из этой ассоциации. По умолчанию — 'all'. Когда стратегия — 'join', будут использованы только поля, вложения и условия where из поиска.

Этот метод вернёт объект ассоциации, который был создан.

Параметры

string $associated

псевдоним целевой таблицы. Используется для уникальной идентификации ассоциации

array $options optional

список опций для настройки определения ассоциации

Возвращает

Cake\ORM\Association\BelongsTo

belongsToMany() public

belongsToMany(string $associated, array $options = []): Cake\ORM\Association\BelongsToMany

Создаёт новую ассоциацию BelongsToMany между этой таблицей и целевой таблицей. Ассоциация "belongs to many" — это отношение М-Н.

Целевую таблицу можно определить по её имени, указанному в первом аргументе, или указать имя класса для создания экземпляра, либо непосредственно экземпляр класса.

Массив параметров принимает следующие ключи:

  • className: Имя класса объекта целевой таблицы.
  • targetTable: Экземпляр объекта таблицы, используемого в качестве целевой таблицы.
  • foreignKey: Имя поля, используемого в качестве внешнего ключа.
  • targetForeignKey: Имя поля, используемого в качестве внешнего ключа целевой таблицы.
  • joinTable: Имя таблицы, представляющей связь между двумя таблицами
  • through: Если вы решили использовать уже созданную таблицу связи, установите этот ключ в конфигурированный экземпляр Table, содержащий ассоциации с исходной и целевой таблицами в этой ассоциации.
  • dependent: Установите в значение false, если вы не хотите удалять записи в таблице соединения при удалении записи владельца.
  • cascadeCallbacks: Установите в значение true, если вы хотите, чтобы CakePHP запускал обратные вызовы при каскадном удалении. Если false, ORM будет использовать deleteAll() для удаления данных. Если true, записи в таблице соединения/соединения будут загружены, а затем удалены.
  • conditions: массив с условиями для фильтрации соединения.
  • sort: Порядок, в котором должны возвращаться результаты этой ассоциации.
  • strategy: Стратегия, используемая для выбора результатов. Доступны 'select' и 'subquery'. Если выбран subquery, запрос, используемый для возврата результатов в исходной таблице, будет использован в качестве условий для получения строк в целевой таблице.
  • saveStrategy: 'append' или 'replace'. Указывает режим, используемый для сохранения связанных сущностей. Первый режим создаёт только новые связи между обеими сторонами отношения, а второй режим очищает и заменяет связи между переданными сущностями при сохранении.
  • strategy: Стратегия загрузки. Поддерживаются 'select' и 'subquery'.
  • finder: Метод поиска для загрузки записей из этой ассоциации. По умолчанию 'all'.

Этот метод вернёт объект ассоциации, который был создан.

Параметры

string $associated

псевдоним для целевой таблицы. Используется для уникальной идентификации ассоциации

array $options optional

список параметров для конфигурации определения ассоциации

Возвращает

Cake\ORM\Association\BelongsToMany

buildRules() public

buildRules(Cake\Datasource\RulesChecker $rules): Cake\ORM\RulesChecker

Возвращает объект RulesChecker после модификации предоставленного.

Подклассы должны переопределять этот метод для инициализации правил, применяемых к сущностям, сохранённым этим экземпляром.

Параметры

Cake\Datasource\RulesChecker $rules

Объект правил, подлежащий модификации.

Возвращает

Cake\ORM\RulesChecker

callFinder() public

callFinder(string $type, Cake\ORM\Query $query, array $options = []): Cake\ORM\Query

Вызывает метод поиска непосредственно и применяет его к переданному запросу. Если запрос не передан, будет создан и возвращён новый.

Параметры

string $type

имя вызываемого метода поиска

Cake\ORM\Query $query

Объект запроса, к которому применяются параметры поиска

array $options optional

Список параметров, передаваемых методу поиска

Возвращает

Cake\ORM\Query

Исключения

BadMethodCallException

checkAliasLengths() protected

checkAliasLengths(): void

Проверяет, подходят ли все комбинации имён таблиц + имён столбцов, используемые для запросов, к максимально допустимой длине, разрешённой драйвером базы данных.

Возвращает

void

Исключения

RuntimeException
При слишком большой длине комбинации псевдонимов

checkRules() public

checkRules(Cake\Datasource\EntityInterface $entity, string $operation = RulesChecker::CREATE, ArrayObject|array|null $options = null): bool

Возвращает, соответствует ли переданная сущность всем правилам, хранящимся в проверяющем объекте правил.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность, проверка валидности которой требуется.

string $operation optional

Выполняемая операция. 'create', 'update' или 'delete'.

ArrayObject|array|null $options optional

Параметры, передаваемые правилам.

Возвращает

bool

createValidator() protected

createValidator(string $name): Cake\Validation\Validator

Создаёт валидатор, используя пользовательский метод внутри вашего класса.

Этот метод используется только для создания нового валидатора и не сохраняет его в вашем объекте. Если вы хотите создать и повторно использовать валидаторы, используйте метод getValidator() вместо этого.

Параметры

string $name

Имя набора валидации, который нужно создать.

Возвращает

Cake\Validation\Validator

Исключения

RuntimeException

defaultConnectionName() public static

defaultConnectionName(): string

Получить имя подключения по умолчанию.

Этот метод используется для получения имени подключения по умолчанию, если экземпляр создан через TableLocator без указания подключения.

Возвращает

string

См. также

\Cake\ORM\Locator\TableLocator::get()

delete() public

delete(Cake\Datasource\EntityInterface $entity, arrayArrayAccess $options = []): bool

Удалить одну сущность.

Для ассоциаций HasMany и HasOne записи будут удалены в зависимости от параметра dependent. Записи в таблице соединения в ассоциациях BelongsToMany всегда удаляются. Вы можете использовать параметр cascadeCallbacks при определении ассоциаций, чтобы изменить способ удаления связанных данных.

Параметры

  • atomic По умолчанию true. Если true, удаление происходит в рамках транзакции.
  • checkRules По умолчанию true. Проверка правил удаления перед удалением записи.

События

  • Model.beforeDelete Срабатывает перед выполнением удаления. Если остановлен, удаление будет прервано. Получает событие, сущность и параметры.
  • Model.afterDelete Срабатывает после успешного удаления. Получает событие, сущность и параметры.
  • Model.afterDeleteCommit Срабатывает после подтверждения транзакции при атомарном удалении. Получает событие, сущность и параметры.

Аргумент параметров будет преобразован в экземпляр \ArrayObject на время выполнения обратных вызовов, что позволит слушателям изменять параметры, используемые в операции удаления.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность для удаления.

arrayArrayAccess $options optional

Параметры удаления.

Возвращает

bool

deleteAll() public

deleteAll(mixed $conditions): int

Удаляет все записи, соответствующие заданным условиям.

Этот метод не запускает события beforeDelete/afterDelete. Если вам нужны эти события, сначала загрузите коллекцию записей и удалите их.

Этот метод не выполняется для cascade атрибута ассоциаций. Для каскадного удаления используйте внешние ключи базы данных + правила ON CASCADE.

Параметры

mixed $conditions

Возвращает

int

deleteMany() public

deleteMany(arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities, arrayArrayAccess $options = []): arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface|false

Удаляет несколько сущностей таблицы.

Записи будут удалены в рамках транзакции, которая будет отменена, если хотя бы одна запись не будет удалена из-за невалидной проверки или ошибки базы данных.

Параметры

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities

Сущности для удаления.

arrayArrayAccess $options optional

Параметры, используемые при вызове Table::save() для каждой сущности.

Возвращает

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface|false

См. также

\Cake\ORM\Table::delete() для параметров и событий, связанных с этим методом.

deleteManyOrFail() public

deleteManyOrFail(arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities, arrayArrayAccess $options = []): arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface

Удаляет несколько сущностей таблицы.

Записи будут удалены в рамках транзакции, которая будет отменена, если хотя бы одна запись не будет удалена из-за невалидной проверки или ошибки базы данных.

Параметры

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities

Сущности для удаления.

arrayArrayAccess $options optional

Параметры, используемые при вызове Table::save() для каждой сущности.

Возвращает

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface

Исключения

Cake\ORM\Exception\PersistenceFailedException

См. также

\Cake\ORM\Table::delete() для параметров и событий, связанных с этим методом.

deleteOrFail() public

deleteOrFail(Cake\Datasource\EntityInterface $entity, arrayArrayAccess $options = []): true

Попытка удалить сущность или выбросить исключение PersistenceFailedException, если сущность является новой, не имеет значения первичного ключа, проверка правил приложения не пройдена или удаление было прервано обратным вызовом.

Parameters

Cake\Datasource\EntityInterface $entity

Сущность для удаления.

arrayArrayAccess $options optional

Параметры для удаления.

Returns

true

Throws

Cake\ORM\Exception\PersistenceFailedException

See Also

\Cake\ORM\Table::delete()

dispatchEvent() public

dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\EventInterface

Обёртка для создания и отправки событий.

Возвращает отправленное событие.

Parameters

string $name

Имя события.

array|null $data optional

Любое значение, которое вы хотите передать с этим событием, чтобы оно могло быть прочитано слушателями.

object|null $subject optional

Объект, к которому относится это событие (по умолчанию $this).

Returns

Cake\Event\EventInterface

exists() public

exists(array $conditions): bool

Возвращает true, если в этом репозитории есть запись, соответствующая указанным условиям.

Parameters

array $conditions

Returns

bool

find() public

find(string $type = 'all', array $options = []): Cake\ORM\Query

Создаёт новый запрос для этого репозитория и применяет некоторые значения по умолчанию на основе типа выбранного поиска.

Событие Model.beforeFind

Каждый find() вызовет событие Model.beforeFind для всех подключенных слушателей. Любой слушатель может установить допустимый набор результатов с помощью $query

По умолчанию, $options будет распознавать следующие ключи:

  • fields
  • conditions
  • order
  • limit
  • offset
  • page
  • group
  • having
  • contain
  • join

Использование

Использование массива параметров:

$query = $articles->find('all', [
  'conditions' => ['published' => 1],
  'limit' => 10,
  'contain' => ['Users', 'Comments']
]);

Использование интерфейса builder:

$query = $articles->find()
  ->where(['published' => 1])
  ->limit(10)
  ->contain(['Users', 'Comments']);

Вызов finders

Метод find() является точкой входа для пользовательских методов поиска. Вы можете вызвать поиск, указав тип:

$query = $articles->find('published');

Вызовет метод findPublished.

Parameters

string $type optional

тип запроса для выполнения

array $options optional

Массив, который будет передан в Query::applyOptions()

Returns

Cake\ORM\Query

findAll() public

findAll(Cake\ORM\Query $query, array $options): Cake\ORM\Query

Возвращает запрос как есть.

По умолчанию findAll() не применяет никаких условий, вы можете переопределить этот метод в подклассах, чтобы изменить, как работает find('all').

Parameters

Cake\ORM\Query $query

Запрос для поиска.

array $options

Параметры для использования при поиске.

Returns

Cake\ORM\Query

findAssociation() protected

findAssociation(string $name): Cake\ORM\Association|null

Возвращает объект ассоциации, настроенный для указанного псевдонима, если таковой существует.

Аргумент имени также поддерживает точечную нотацию для доступа к более глубоким ассоциациям.

$users = $this->getAssociation('Articles.Comments.Users');

Parameters

string $name

Псевдоним, используемый для ассоциации.

Returns

Cake\ORM\Association|null

findList() public

findList(Cake\ORM\Query $query, array $options): Cake\ORM\Query

Настраивает объект запроса так, чтобы результаты отображались как индексированный массив, что полезно в любом месте, где вам нужен список, например, для заполнения списков выбора ввода.

При вызове этого поиска передаваемые поля используются для определения того, что должно использоваться в качестве ключа массива, значения и, необязательно, для группировки результатов. По умолчанию первичный ключ для модели используется в качестве ключа, а поле отображения — в качестве значения.

Результаты этого поиска будут иметь следующий вид:

[
 1 => 'value for id 1',
 2 => 'value for id 2',
 4 => 'value for id 4'
]

Вы можете указать, какое свойство будет использоваться в качестве ключа, а какое — в качестве значения, используя массив $options, если он не указан, он будет использовать результаты вызова primaryKey и displayField соответственно в этой таблице:

$table->find('list', [
 'keyField' => 'name',
 'valueField' => 'age'
]);

valueField также может быть массивом, в этом случае вы также можете указать параметр valueSeparator для управления тем, как значения будут объединяться:

$table->find('list', [
 'valueField' => ['first_name', 'last_name'],
 'valueSeparator' => ' | ',
]);

Результаты этого поиска будут иметь следующий вид:

[
 1 => 'John | Doe',
 2 => 'Steve | Smith'
]

Результаты могут быть объединены в более крупные группы, если они имеют общее свойство, вы можете настроить свойство для использования для группировки, установив groupField:

$table->find('list', [
 'groupField' => 'category_id',
]);

При использовании groupField результаты будут возвращены в этом формате:

[
 'group_1' => [
     1 => 'value for id 1',
     2 => 'value for id 2',
 ]
 'group_2' => [
     4 => 'value for id 4'
 ]
]

Parameters

Cake\ORM\Query $query

Запрос для поиска.

array $options

Параметры для поиска.

Returns

Cake\ORM\Query

findOrCreate() public

findOrCreate(array|callableCake\ORM\Query $search, callable|null $callback = null, array $options = []): Cake\Datasource\EntityInterface

Находит существующую запись или создаёт новую.

Будет выполнен поиск find() для поиска существующей записи с использованием атрибутов, определённых в $search. Если записи соответствуют условиям, будет возвращена первая запись.

Если запись не найдена, будет создана новая сущность со свойствами $search. Если предоставлен обратный вызов, он будет вызван, позволяя вам определить дополнительные значения по умолчанию. Новая сущность будет сохранена и возвращена.

Если ваши условия поиска требуют пользовательской сортировки, ассоциаций или условий, то параметр $search может быть вызываемым объектом, который принимает Query в качестве аргумента, или объект \Cake\ORM\Query, переданный в качестве параметра $search. Это позволит вам настроить результаты поиска.

Параметры

Массив параметров передаётся методу save за исключением следующих ключей:

  • atomic: Выполнять ли методы для поиска, сохранения и обратных вызовов внутри транзакции базы данных (по умолчанию: true)
  • defaults: Использовать ли критерии поиска в качестве значений по умолчанию для новой сущности (по умолчанию: true)

Parameters

array|callableCake\ORM\Query $search

Критерии для поиска существующих записей. Обратите внимание, что при передаче объекта запроса вам придётся использовать второй аргумент метода для изменения данных сущности перед сохранением.

callable|null $callback optional

Обратный вызов, который будет вызван для вновь созданных сущностей. Этот обратный вызов будет вызван до сохранения сущности.

array $options optional

Параметры для использования при сохранении.

Returns

Cake\Datasource\EntityInterface

Throws

Cake\ORM\Exception\PersistenceFailedException
Когда сущность не может быть сохранена

findThreaded() public

findThreaded(Cake\ORM\Query $query, array $options): Cake\ORM\Query

Результаты этого поиска будут представлять собой вложенный массив и подходят, если вы хотите использовать поле parent_id данных вашей модели для построения вложенных результатов.

Значения, принадлежащие родительской строке на основе их значения parent_id, будут рекурсивно вложены внутри значений родительской строки с использованием свойства children

Вы можете настроить поля, используемые для вложения результатов, по умолчанию используются поля первичного ключа и parent_id. Если вы хотите изменить эти значения по умолчанию, вам необходимо указать ключи keyField, parentField или nestingKey в $options:

$table->find('threaded', [
 'keyField' => 'id',
 'parentField' => 'ancestor_id'
 'nestingKey' => 'children'
]);

Parameters

Cake\ORM\Query $query

Запрос для поиска.

array $options

Параметры для поиска.

Returns

Cake\ORM\Query

get() public

get(mixed $primaryKey, array $options = []): Cake\Datasource\EntityInterface

Возвращает одну запись после поиска по её первичному ключу, если запись не найдена, этот метод вызывает исключение.

Использование

Получение статьи и некоторых связей:

$article = $articles->get(1, ['contain' => ['Users', 'Comments']]);

Parameters

mixed $primaryKey

Значение первичного ключа для поиска.

array $options optional

Параметры, принимаемые Table::find().

Returns

Cake\Datasource\EntityInterface

Throws

Cake\Datasource\Exception\RecordNotFoundException
если запись с таким id не найдена
Cake\Datasource\Exception\InvalidPrimaryKeyException
Когда $primaryKey имеет неправильное количество элементов.

See Also

\Cake\Datasource\RepositoryInterface::find()

getAlias() public

getAlias(): string

Возвращает псевдоним таблицы.

Возвращает

string

getAssociation() public

getAssociation(string $name): Cake\ORM\Association

Возвращает объект ассоциации, настроенный для указанного псевдонима.

Аргумент name также поддерживает синтаксис точек для доступа к более глубоким ассоциациям.

$users = $this->getAssociation('Articles.Comments.Users');

Обратите внимание, что этот метод требует наличия ассоциации, в противном случае он выбросит исключение. Если вы не уверены, используйте hasAssociation() перед вызовом этого метода.

Параметры

string $name

Псевдоним, используемый для ассоциации.

Возвращает

Cake\ORM\Association

Исключения

InvalidArgumentException

getBehavior() public

getBehavior(string $name): Cake\ORM\Behavior

Получить поведение из реестра.

Параметры

string $name

Псевдоним поведения, который нужно получить из реестра.

Возвращает

Cake\ORM\Behavior

Исключения

InvalidArgumentException
Если поведение не существует.

getConnection() public

getConnection(): Cake\Database\Connection

Возвращает экземпляр соединения.

Возвращает

Cake\Database\Connection

getDisplayField() public

getDisplayField(): string|string[]|null

Возвращает поле отображения.

Возвращает

string|string[]|null

getEntityClass() public

getEntityClass(): string

Возвращает класс, используемый для гидратации строк для этой таблицы.

Возвращает

string

getEventManager() public

getEventManager(): Cake\Event\EventManagerInterface

Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации любых новых слушателей или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по своему усмотрению.

Возвращает

Cake\Event\EventManagerInterface

getPrimaryKey() public

getPrimaryKey(): string|string[]

Возвращает имя поля первичного ключа.

Возвращает

string|string[]

getRegistryAlias() public

getRegistryAlias(): string

Возвращает ключ реестра таблицы, используемый для создания этого экземпляра таблицы.

Возвращает

string

getSaveOptionsBuilder() public

getSaveOptionsBuilder(array $options = []): Cake\ORM\SaveOptionsBuilder

Получает экземпляр SaveOptionsBuilder.

Параметры

array $options optional

Параметры для анализа билдером.

Возвращает

Cake\ORM\SaveOptionsBuilder

getSchema() public

getSchema(): Cake\Database\Schema\TableSchemaInterface

Возвращает объект схемы таблицы, описывающий свойства этой таблицы.

Возвращает

Cake\Database\Schema\TableSchemaInterface

getTable() public

getTable(): string

Возвращает имя таблицы базы данных.

Это может включать имя схемы базы данных, если оно задано с использованием setTable().

Возвращает

string

getValidator() public

getValidator(string|null $name = null): Cake\Validation\Validator

Возвращает правила проверки, помеченные с помощью $name. Возможно иметь несколько различных наборов проверки с именами, что полезно, когда вам нужно использовать различные правила при сохранении из разных процедур вашей системы.

Если ранее валидатор не был задан, этот метод создаст валидатор, используя метод внутри вашего класса.

Например, если вы хотите создать набор проверки под названием 'forSubscription', вам нужно создать метод в вашем подклассе Table следующим образом:

public function validationForSubscription($validator)
{
    return $validator
        ->add('email', 'valid-email', ['rule' => 'email'])
        ->add('password', 'valid', ['rule' => 'notBlank'])
        ->requirePresence('username');
}

$validator = $this->getValidator('forSubscription');

Вы можете реализовать метод в validationDefault в вашем подклассе Table, если хотите иметь набор проверки, который применяется в тех случаях, когда не указан другой набор.

Если аргумент $name не указан, будет возвращён валидатор по умолчанию. Вы можете настроить имя валидатора по умолчанию в DEFAULT_VALIDATOR константе класса.

Параметры

string|null $name optional

Имя набора проверки, который нужно вернуть.

Возвращает

Cake\Validation\Validator

hasAssociation() public

hasAssociation(string $name): bool

Проверяет, существует ли определённая ассоциация в этом экземпляре Table.

Аргумент name также поддерживает синтаксис точек для доступа к более глубоким ассоциациям.

$hasUsers = $this->hasAssociation('Articles.Comments.Users');

Параметры

string $name

Псевдоним, используемый для ассоциации.

Возвращает

bool

hasBehavior() public

hasBehavior(string $name): bool

Проверяет, загружено ли поведение с данным псевдонимом.

Параметры

string $name

Псевдоним поведения для проверки.

Возвращает

bool

hasField() public

hasField(string $field): bool

Проверка наличия определённого поля/колонки в таблице.

Делегирует запрос к объекту схемы и проверяет наличие колонки, используя экземпляр Schema\Table.

Параметры

string $field

Поле для проверки.

Возвращает

bool

hasFinder() public

hasFinder(string $type): bool

Возвращает true, если поиск существует для таблицы

Параметры

string $type

имя поиска для проверки

Возвращает

bool

hasMany() public

hasMany(string $associated, array $options = []): Cake\ORM\Association\HasMany

Создаёт новую ассоциацию HasMany между этой таблицей и целевой таблицей. Ассоциация "has many" - это отношение 1-N.

Целевая таблица может быть определена по её имени, которое указано в первом аргументе, или вы можете передать имя класса для создания или экземпляр класса непосредственно.

Массив options принимает следующие ключи:

  • className: Имя класса объекта целевой таблицы
  • targetTable: Экземпляр объекта таблицы, используемый в качестве целевой таблицы
  • foreignKey: Имя поля для использования в качестве внешнего ключа, если false, не будет использоваться
  • dependent: Установите в значение true, если вы хотите, чтобы CakePHP каскадно удалял связанные данные в целевой таблице, когда сущность удаляется в этой таблице. Операция удаления в связанной таблице не будет каскадно удалять дальше. Чтобы получить рекурсивные каскадные удаления, включите cascadeCallbacks также. Установите в значение false, если вы не хотите, чтобы CakePHP удалял связанные данные, или когда вы используете ограничения базы данных.
  • cascadeCallbacks: Установите в значение true, если вы хотите, чтобы CakePHP вызывал обратные вызовы при каскадном удалении. Если false, ORM будет использовать deleteAll() для удаления данных. При значении true записи будут загружены, а затем удалены.
  • conditions: массив с списком условий для фильтрации соединения
  • sort: Порядок, в котором должны возвращаться результаты для этой ассоциации
  • saveStrategy: Либо 'append', либо 'replace'. При 'append' текущие записи добавляются к любым записям в базе данных. При 'replace' связанные записи, не включённые в текущий набор, будут удалены. Если внешний ключ является полем, допускающим значения null, или если dependent имеет значение true, записи будут сиротами.
  • strategy: Стратегия, используемая для выбора результатов. Либо 'select', либо 'subquery'. Если выбран subquery, запрос, используемый для возвращения результатов в исходной таблице, будет использоваться в качестве условий для получения строк в целевой таблице.
  • finder: Метод поиска, который нужно использовать при загрузке записей из этой ассоциации. По умолчанию 'all'.

Этот метод вернёт объект ассоциации, который был создан.

Параметры

string $associated

Псевдоним целевой таблицы. Используется для уникальной идентификации ассоциации

array $options optional

Список параметров для настройки определения ассоциации

Возвращает

Cake\ORM\Association\HasMany

hasOne() public

hasOne(string $associated, array $options = []): Cake\ORM\Association\HasOne

Создаёт новую ассоциацию HasOne между этой таблицей и целевой таблицей. Ассоциация "has one" — это отношение 1-1.

Целевая таблица может быть определена по её имени, указанному в первом аргументе, или вы можете передать имя класса для создания экземпляра или непосредственно экземпляр класса.

Массив опций принимает следующие ключи:

  • className: Имя класса объекта целевой таблицы
  • targetTable: Экземпляр объекта таблицы, который будет использоваться как целевая таблица
  • foreignKey: Имя поля, используемого в качестве внешнего ключа. Если false, внешний ключ не будет использоваться
  • dependent: Установите в значение true, если вы хотите, чтобы CakePHP каскадно удалял данные в связанной таблице при удалении сущности в этой таблице. Операция удаления в связанной таблице не будет каскадно выполняться дальше. Чтобы получить рекурсивные каскадные удаления, также включите cascadeCallbacks. Установите в значение false, если вы не хотите, чтобы CakePHP удалял связанные данные или когда вы используете ограничения базы данных.
  • cascadeCallbacks: Установите в значение true, если вы хотите, чтобы CakePHP вызывал колбэки при каскадном удалении. Если false, ORM будет использовать deleteAll() для удаления данных. При значении true записи будут загружены, а затем удалены.
  • conditions: Массив с перечнем условий для фильтрации объединения
  • joinType: Тип объединения (например, LEFT)
  • strategy: Стратегия загрузки. Поддерживаются 'join' и 'select'.
  • finder: Метод поиска для загрузки записей из этой ассоциации. По умолчанию 'all'. Когда стратегия 'join', будут использоваться только поля, включения и условия WHERE из поиска.

Этот метод вернёт объект ассоциации, который был создан.

Параметры

string $associated

псевдоним целевой таблицы. Используется для уникальной идентификации ассоциации

array $options optional

список опций для настройки определения ассоциации

Возвращаемое значение

Cake\ORM\Association\HasOne

hasValidator() public

hasValidator(string $name): bool

Проверяет, установлен ли валидатор.

Параметры

string $name

Имя валидатора.

Возвращаемое значение

bool

implementedEvents() public

implementedEvents(): array

Получение колбэков модели, к которым эта таблица проявляет интерес.

Реализация стандартных методов предполагает, что класс таблицы заинтересован в связанных событиях.

Переопределите этот метод, если вам нужно добавить нестандартные слушатели событий. Или если вы хотите, чтобы ваша таблица прослушивала нестандартные события.

Стандартное отображение методов:

  • Model.beforeMarshal => beforeMarshal
  • Model.afterMarshal => afterMarshal
  • Model.buildValidator => buildValidator
  • Model.beforeFind => beforeFind
  • Model.beforeSave => beforeSave
  • Model.afterSave => afterSave
  • Model.afterSaveCommit => afterSaveCommit
  • Model.beforeDelete => beforeDelete
  • Model.afterDelete => afterDelete
  • Model.afterDeleteCommit => afterDeleteCommit
  • Model.beforeRules => beforeRules
  • Model.afterRules => afterRules

Возвращаемое значение

array

initialize() public

initialize(array $config): void

Инициализация экземпляра таблицы. Вызывается после конструктора.

Вы можете использовать этот метод для определения ассоциаций, добавления бихевиоров, определения валидации и выполнения любой другой необходимой инициализации.

public function initialize(array $config)
 {
     $this->belongsTo('Users');
     $this->belongsToMany('Tagging.Tags');
     $this->setPrimaryKey('something_else');
 }

Параметры

array $config

Параметры конфигурации, переданные в конструктор

Возвращаемое значение

void

loadInto() public

loadInto(Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface> $entities, array $contain): Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface>

Загружает указанные ассоциации в переданную сущность или список сущностей, выполняя дополнительные запросы в базе данных и объединяя результаты в соответствующие свойства.

Пример:

$user = $usersTable->get(1);
$user = $usersTable->loadInto($user, ['Articles.Tags', 'Articles.Comments']);
echo $user->articles[0]->title;

Вы также можете загружать ассоциации для нескольких сущностей одновременно

Пример:

$users = $usersTable->find()->where([...])->toList();
$users = $usersTable->loadInto($users, ['Articles.Tags', 'Articles.Comments']);
echo $user[1]->articles[0]->title;

Свойства для загружаемых ассоциаций будут перезаписаны для каждой сущности.

Параметры

Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface> $entities

одна сущность или список сущностей

array $contain

Массив, совместимый с contain().

Возвращаемое значение

Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface>

См. также

\Cake\ORM\Query::contain()

marshaller() public

marshaller(): Cake\ORM\Marshaller

Получение объекта, используемого для маршаллирования/преобразования данных массива в объекты.

Переопределите этот метод, если вы хотите, чтобы объект таблицы использовал пользовательскую логику маршаллирования.

Возвращаемое значение

Cake\ORM\Marshaller

См. также

\Cake\ORM\Marshaller

newEmptyEntity() public

newEmptyEntity(): Cake\Datasource\EntityInterface

Создаёт новый объект сущности.

Внимание: Это не вызывает проверки полей. Эта сущность может быть сохранена без ошибок проверки как пустая запись. Всегда заполняйте необходимые поля перед сохранением.

Возвращаемое значение

Cake\Datasource\EntityInterface

newEntities() public

newEntities(array $data, array $options = []): arrayCake\Datasource\EntityInterface>

Создаёт список сущностей + связанных сущностей из массива.

По умолчанию все ассоциации в этой таблице будут гидратированы. Вы можете ограничить создаваемые ассоциации или включить более глубокие ассоциации с помощью параметра options:

$articles = $this->Articles->newEntities(
  $this->request->getData(),
  ['associated' => ['Tags', 'Comments.Users']]
);

Вы можете ограничить поля, присутствующие в созданных сущностях, передав параметр fields, который также поддерживается для ассоциаций:

$articles = $this->Articles->newEntities($this->request->getData(), [
 'fields' => ['title', 'body', 'tags', 'comments'],
 'associated' => ['Tags', 'Comments.Users' => ['fields' => 'username']]
 ]
);

Вы можете использовать событие Model.beforeMarshal для изменения данных запроса перед преобразованием в сущности.

Параметры

array $data

Данные для создания сущности.

array $options optional

Список опций для гидратации объектов.

Возвращаемое значение

arrayCake\Datasource\EntityInterface>

newEntity() public

newEntity(array $data, array $options = []): Cake\Datasource\EntityInterface

Создаёт новую сущность + связанные сущности из массива.

По умолчанию все ассоциации в этой таблице будут гидратированы. Вы можете ограничить создаваемые ассоциации или включить более глубокие ассоциации с помощью параметра options:

$article = $this->Articles->newEntity(
  $this->request->getData(),
  ['associated' => ['Tags', 'Comments.Users']]
);

Вы можете ограничить поля, присутствующие в созданной сущности, передав параметр fields, который также поддерживается для ассоциаций:

$article = $this->Articles->newEntity($this->request->getData(), [
 'fields' => ['title', 'body', 'tags', 'comments'],
 'associated' => ['Tags', 'Comments.Users' => ['fields' => 'username']]
]
);

Параметр fields позволяет удалить или ограничить входные данные, которые попадают в сущность. Если вы хотите ослабить стандартные доступные поля сущности, вы можете использовать параметр accessibleFields:

$article = $this->Articles->newEntity(
  $this->request->getData(),
  ['accessibleFields' => ['protected_field' => true]]
);

По умолчанию данные проверяются перед передачей новой сущности. В случае некорректных полей, они не будут присутствовать в результирующем объекте. Параметр validate может быть использован для отключения валидации переданных данных:

$article = $this->Articles->newEntity(
  $this->request->getData(),
  ['validate' => false]
);

Вы также можете передать имя используемого валидатора в параметре validate. Если null передано в первый параметр этой функции, валидация не будет выполнена.

Вы можете использовать событие Model.beforeMarshal для изменения данных запроса перед преобразованием в сущности.

Параметры

array $data

Данные для создания сущности.

array $options optional

Список опций для гидратации объекта.

Возвращаемое значение

Cake\Datasource\EntityInterface

См. также

\Cake\ORM\Marshaller::one()

patchEntities() public

patchEntities(Cake\Datasource\EntityInterface[]Traversable $entities, array $data, array $options = []): arrayCake\Datasource\EntityInterface>

Объединяет каждый из элементов, переданных в $data, в сущности, найденные в $entities, учитывая доступные поля, настроенные в сущностях. Объединение выполняется путём сопоставления первичного ключа в каждом из элементов в $data и $entities.

Записи в $entities, которые не могут быть сопоставлены с любой записью в $data, будут отброшены. Записи в $data, которые не смогли быть сопоставлены, будут маршаллированы как новые сущности.

При объединении ассоциаций HasMany или BelongsToMany все сущности в массиве $data появятся, те, которые могут быть сопоставлены по первичному ключу, получат данные, объединённые, но те, которые не могут, будут отброшены.

Вы можете ограничить поля, присутствующие в объединённых сущностях, передав параметр fields, который также поддерживается для ассоциаций:

$articles = $this->Articles->patchEntities($articles, $this->request->getData(), [
 'fields' => ['title', 'body', 'tags', 'comments'],
 'associated' => ['Tags', 'Comments.Users' => ['fields' => 'username']]
 ]
);

Вы можете использовать событие Model.beforeMarshal для изменения данных запроса перед преобразованием в сущности.

Параметры

Cake\Datasource\EntityInterface[]Traversable $entities

сущности, которым будут объединены данные

array $data

список массивов для объединения в сущности

array $options optional

список опций для гидратации объектов

Возвращаемое значение

arrayCake\Datasource\EntityInterface>

patchEntity() public

patchEntity(Cake\Datasource\EntityInterface $entity, array $data, array $options = []): Cake\Datasource\EntityInterface

Объединяет переданные $data в $entity, учитывая доступные поля, настроенные в сущности. Возвращает ту же сущность после изменения.

При объединении ассоциаций HasMany или BelongsToMany все сущности в массиве $data будут отображены, те, которые можно сопоставить по первичному ключу, получат объединённые данные, а те, которые нельзя, будут отброшены.

Можно ограничить поля, которые будут присутствовать в объединённой сущности, передав опцию fields, которая также поддерживается для ассоциаций:

$article = $this->Articles->patchEntity($article, $this->request->getData(), [
 'fields' => ['title', 'body', 'tags', 'comments'],
 'associated' => ['Tags', 'Comments.Users' => ['fields' => 'username']]
 ]
);
$article = $this->Articles->patchEntity($article, $this->request->getData(), [
  'associated' => [
    'Tags' => ['accessibleFields' => ['*' => true]]
  ]
]);

По умолчанию данные проверяются перед передачей в сущность. В случае недействительных полей они не будут назначены сущности. Опцию validate можно использовать для отключения проверки переданных данных:

$article = $this->patchEntity($article, $this->request->getData(),[
 'validate' => false
]);

Можно использовать событие Model.beforeMarshal для изменения данных запроса перед преобразованием их в сущности.

При обновлении скалярных значений (null/boolean/string/integer/float), если свойство в настоящее время имеет идентичное значение, метод установщика не будет вызываться, и свойство не будет помечено как изменённое. Это оптимизация, предотвращающая ненужное обновление полей при сохранении сущностей.

Параметры

Cake\Datasource\EntityInterface $entity

сущность, в которую будут объединены данные

array $data

список пар ключ-значение полей, которые будут объединены в сущность

array $options необязательный

Список параметров для гидратации объекта.

Возвращает

Cake\Datasource\EntityInterface

См. также

\Cake\ORM\Marshaller::merge()

query() public

query(): Cake\ORM\Query

Создаёт новую сущность Query для таблицы.

Возвращает

Cake\ORM\Query

removeBehavior() public

removeBehavior(string $name): $this

Удаляет поведение из реестра поведения данной таблицы.

Пример:

Удалить поведение из этой таблицы.

$this->removeBehavior('Tree');

Параметры

string $name

Псевдоним, с которым поведение было добавлено.

Возвращает

$this

См. также

\Cake\ORM\Behavior

rulesChecker() public

rulesChecker(): Cake\Datasource\RulesChecker

Возвращает RulesChecker для этого экземпляра.

Объект RulesChecker используется для проверки валидности сущности по правилам, которые могут включать сложную логику или данные, которые необходимо извлечь из соответствующих источников данных.

Возвращает

Cake\Datasource\RulesChecker

См. также

\Cake\Datasource\RulesChecker

save() public

save(Cake\Datasource\EntityInterface $entity, arrayArrayAccess $options = []): Cake\Datasource\EntityInterface|false

Сохраняет сущность на основе полей, помеченных как изменённые, и возвращает ту же сущность после успешного сохранения или false в случае ошибки.

Опции

Массив опций принимает следующие ключи:

  • atomic: Выполнять сохранение и обратные вызовы внутри транзакции базы данных (по умолчанию: true)
  • checkRules: Проверять правила сущности перед сохранением. Если проверка завершается неудачно, операция сохранения прерывается. (по умолчанию: true)
  • associated: Если true, будет сохранять сущности первого уровня, как они найдены в переданном $entity, всякий раз, когда свойство, определённое для ассоциации, помечено как изменённое. Если массив, он будет интерпретироваться как список ассоциаций, которые нужно сохранить. Возможно, предоставить разные параметры для сохранения объектов таблиц-ассоциаций, используя этот ключ, сделав пользовательские параметры значением массива. Если false, связанные записи не будут сохранены. (по умолчанию: true)
  • checkExisting: Проверять, существует ли сущность, предполагая, что сущность не новая и первичный ключ задан.

События

При сохранении этот метод вызовет четыре события:

  • Model.beforeRules: Будет вызван незадолго до проверки любого правила для переданной сущности, если ключ checkRules в $options не установлен в false. Слушатели получат в качестве аргументов сущность, массив опций и тип операции. Если событие остановлено, результат проверки правил будет установлен в результат самого события.
  • Model.afterRules: Будет вызван сразу после вызова метода checkRules() для сущности. Слушатели получат в качестве аргументов сущность, массив опций, результат проверки правил и тип операции. Если событие остановлено, результат проверки будет установлен в результат самого события.
  • Model.beforeSave: Будет вызван непосредственно перед вычислением списка полей, подлежащих сохранению. Он получает как сущность, так и массив опций в качестве аргументов. Массив опций передаётся как ArrayObject, поэтому любые изменения в нём будут отражаться в каждом слушателе и запомнятся в конце события, чтобы они могли быть использованы для остальной части операции сохранения. Возврат false в любом из слушателей прервёт процесс сохранения. Если событие остановлено с использованием API событий, будет возвращено свойство result объекта события. Это может быть полезно при реализации собственной стратегии сохранения внутри слушателя.
  • Model.afterSave: Будет вызван после успешного вставки или сохранения. Слушатели получат сущность и массив опций в качестве аргументов. Тип выполненной операции (вставка или обновление) можно определить, проверив метод isNew сущности. True означает вставку, а false — обновление.
  • Model.afterSaveCommit: Будет вызван после подтверждения транзакции для атомарного сохранения. Слушатели получат сущность и массив опций в качестве аргументов.

Этот метод определит, нужно ли вставить или обновить переданную сущность в базе данных. Он делает это, проверяя метод isNew в сущности. Если сущность, подлежащая сохранению, возвращает непустое значение из своего метода errors(), она не будет сохранена.

Сохранение связанных таблиц

Этот метод по умолчанию сохраняет сущности, принадлежащие связанным таблицам, всякий раз, когда грязное свойство соответствует имени свойства, заданному для ассоциации в этой таблице. Возможно, управлять тем, какие ассоциации будут сохранены, и передавать дополнительные параметры для их сохранения.

// Only save the comments association
$articles->save($entity, ['associated' => ['Comments']]);

// Save the company, the employees and related addresses for each of them.
// For employees do not check the entity rules
$companies->save($entity, [
  'associated' => [
    'Employees' => [
      'associated' => ['Addresses'],
      'checkRules' => false
    ]
  ]
]);

// Save no associations
$articles->save($entity, ['associated' => false]);

Параметры

Cake\Datasource\EntityInterface $entity

сущность, подлежащая сохранению

arrayArrayAccess $options необязательный

Опции для сохранения.

Возвращает

Cake\Datasource\EntityInterface|false

Вызывает исключение

Cake\ORM\Exception\RolledbackTransactionException
Если транзакция прервана в событии afterSave.

saveMany() public

saveMany(arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities, arrayArrayAccessCake\ORM\SaveOptionsBuilder $options = []): arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface|false

Сохраняет несколько сущностей таблицы.

Записи будут сохранены в транзакции, которая будет отменена, если хотя бы одна запись не удастся сохранить из-за неудачной проверки или ошибки базы данных.

Параметры

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities

Сущности для сохранения.

arrayArrayAccessCake\ORM\SaveOptionsBuilder $options необязательный

Опции, используемые при вызове Table::save() для каждой сущности.

Возвращает

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface|false

Вызывает исключение

Exception

saveManyOrFail() public

saveManyOrFail(arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities, arrayArrayAccess $options = []): arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface

Сохраняет несколько сущностей таблицы.

Записи будут сохранены в транзакции, которая будет отменена, если хотя бы одна запись не удастся сохранить из-за неудачной проверки или ошибки базы данных.

Параметры

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface $entities

Сущности для сохранения.

arrayArrayAccess $options необязательный

Опции, используемые при вызове Table::save() для каждой сущности.

Возвращает

arrayCake\Datasource\EntityInterface>Cake\Datasource\ResultSetInterface

Вызывает исключение

Exception

Cake\ORM\Exception\PersistenceFailedException
Если сущность не была сохранена.

saveOrFail() public

saveOrFail(Cake\Datasource\EntityInterface $entity, arrayArrayAccess $options = []): Cake\Datasource\EntityInterface

Попытаться сохранить сущность или бросить PersistenceFailedException, если проверки правил приложения завершились неудачно, сущность содержит ошибки или сохранение было прервано обратным вызовом.

Параметры

Cake\Datasource\EntityInterface $entity

сущность, подлежащая сохранению

arrayArrayAccess $options необязательный

Опции для сохранения.

Возвращает

Cake\Datasource\EntityInterface

Вызывает исключение

Cake\ORM\Exception\PersistenceFailedException
Когда сущность не удаётся сохранить

См. также

\Cake\ORM\Table::save()

setAlias() public

setAlias(string $alias): $this

Устанавливает псевдоним таблицы.

Параметры

string $alias

Псевдоним таблицы

Возвращает

$this

setConnection() public

setConnection(Cake\Database\Connection $connection): $this

Устанавливает экземпляр подключения.

Параметры

Cake\Database\Connection $connection

Экземпляр подключения

Возвращает

$this

setDisplayField() public

setDisplayField(string|string[] $field): $this

Устанавливает поле отображения.

Параметры

string|string[] $field

Имя, используемое в качестве поля отображения.

Возвращает

$this

setEntityClass() public

setEntityClass(string $name): $this

Устанавливает класс, используемый для гидрации строк для этой таблицы.

Параметры

string $name

Имя используемого класса.

Возвращает

$this

Исключения

Cake\ORM\Exception\MissingEntityException
при невозможности найти класс сущности

setEventManager() public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых обработчиков или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по желанию.

Параметры

Cake\Event\EventManagerInterface $eventManager

устанавливаемый менеджер событий

Возвращает

$this

setPrimaryKey() public

setPrimaryKey(string|string[] $key): $this

Устанавливает имя первичного ключа.

Параметры

string|string[] $key

Устанавливает новое имя, используемое в качестве первичного ключа

Возвращает

$this

setRegistryAlias() public

setRegistryAlias(string $registryAlias): $this

Устанавливает ключ реестра таблиц, используемый для создания экземпляра этой таблицы.

Параметры

string $registryAlias

Ключ для доступа к этому объекту.

Возвращает

$this

setSchema() public

setSchema(arrayCake\Database\Schema\TableSchemaInterface $schema): $this

Устанавливает объект схемы таблицы, описывающий свойства этой таблицы.

Если передан массив, из него будет создан новый объект TableSchemaInterface, который будет использоваться в качестве схемы для этой таблицы.

Параметры

arrayCake\Database\Schema\TableSchemaInterface $schema

Схема, используемая для этой таблицы

Возвращает

$this

setTable() public

setTable(string $table): $this

Устанавливает имя таблицы базы данных.

Это может включать имя схемы базы данных в формате 'схема.таблица'. Если имя необходимо заключить в кавычки, включите автоматическое заключение идентификаторов в кавычки.

Параметры

string $table

Имя таблицы.

Возвращает

$this

setValidator() public

setValidator(string $name, Cake\Validation\Validator $validator): $this

Этот метод сохраняет пользовательский валидатор под данным именем.

Вы можете самостоятельно создать объект и сохранить его в своем объекте:

$validator = new \Cake\Validation\Validator();
$validator
    ->add('email', 'valid-email', ['rule' => 'email'])
    ->add('password', 'valid', ['rule' => 'notBlank'])
    ->allowEmpty('bio');
$this->setValidator('forSubscription', $validator);

Параметры

string $name

Имя настраиваемого валидатора.

Cake\Validation\Validator $validator

Объект валидатора, который нужно установить.

Возвращает

$this

subquery() public

subquery(): Cake\ORM\Query

Создаёт новый экземпляр Query::subquery() для таблицы.

Возвращает

Cake\ORM\Query

См. также

\Cake\ORM\Query::subquery()

updateAll() public

updateAll(string|arrayClosureCake\Database\Expression\QueryExpression $fields, mixed $conditions): int

Обновляет все соответствующие записи.

Устанавливает $fields в предоставленные значения на основе $conditions. Этот метод не вызывает события beforeSave/afterSave. Если вам нужны эти события, сначала загрузите коллекцию записей и обновите их.

Параметры

string|arrayClosureCake\Database\Expression\QueryExpression $fields
mixed $conditions

Возвращает

int

validateUnique() public

validateUnique(mixed $value, array $options, array|null $context = null): bool

Метод валидации, используемый для проверки уникальности значения для столбца. Он предназначен для использования с API валидации, а не для прямого вызова.

Пример:

$validator->add('email', [
 'unique' => ['rule' => 'validateUnique', 'provider' => 'table']
])

Валидация уникальности может быть ограничена значением другого столбца:

$validator->add('email', [
 'unique' => [
     'rule' => ['validateUnique', ['scope' => 'site_id']],
     'provider' => 'table'
 ]
]);

В приведенном выше примере уникальность электронной почты будет ограничена только строками, имеющими одинаковый site_id. Ограничение будет использоваться только в том случае, если поле ограничения присутствует в данных, подлежащих валидации.

Параметры

mixed $value

Значение столбца, уникальность которого нужно проверить.

array $options

Массив опций, необязательно содержащий ключ 'scope'. Также может быть контекстом валидации, если нет опций.

array|null $context optional

Либо контекст валидации, либо null.

Возвращает

bool

validationDefault() public

validationDefault(Cake\Validation\Validator $validator): Cake\Validation\Validator

Возвращает объект валидатора по умолчанию. Подклассы могут переопределять эту функцию, чтобы добавить набор правил валидации по умолчанию к объекту валидатора.

Параметры

Cake\Validation\Validator $validator

Валидатор, который можно изменить, чтобы добавить к нему правила.

Возвращает

Cake\Validation\Validator

validationMethodExists() protected

validationMethodExists(string $name): bool

Проверяет наличие метода валидации.

Параметры

string $name

Возвращает

bool

Подробное описание свойства

$_alias protected

Человеческое имя, присвоенное этому экземпляру. Несколько объектов, представляющих одну и ту же таблицу базы данных, могут существовать, используя разные псевдонимы.

Тип

string|null

$_associations protected

Контейнер ассоциаций для этой таблицы.

Тип

Cake\ORM\AssociationCollection

$_behaviors protected

BehaviorRegistry для этой таблицы

Тип

Cake\ORM\BehaviorRegistry

$_connection protected

Экземпляр подключения

Тип

Cake\Database\Connection|null

$_displayField protected

Имя поля, представляющего удобочитаемое представление строки

Тип

string|string[]|null

$_entityClass protected

Имя класса, представляющего одну строку для этой таблицы

Тип

string

$_eventClass protected

Имя по умолчанию класса для новых объектов события.

Тип

string

$_eventManager protected

Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.

Тип

Cake\Event\EventManagerInterface|null

$_primaryKey protected

Имя поля, представляющего первичный ключ в таблице

Тип

string|string[]|null

$_registryAlias protected

Ключ реестра, используемый для создания этого объекта таблицы

Тип

string|null

$_rulesChecker protected

Правила домена, которые применяются к сущностям, сохранённым в этой таблице

Тип

Cake\Datasource\RulesChecker

$_schema protected

Объект схемы, содержащий описание полей этой таблицы

Тип

Cake\Database\Schema\TableSchemaInterface|null

$_table protected

Имя таблицы, как оно может быть найдено в базе данных

Тип

string|null

$_validatorClass protected

Класс валидатора.

Тип

string

$_validators protected

Список объектов валидации, индексированных по имени

Тип

Cake\Validation\Validator[]

© 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/class-Cake.ORM.Table.html

Spec-Zone.ru

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