Класс Таблица
Представляет отдельную таблицу базы данных.
Предоставляет методы для извлечения данных из неё и управляет ассоциациями этой таблицы с другими таблицами. Можно создавать несколько экземпляров этого класса для одной и той же таблицы базы данных с различными псевдонимами, что позволяет более богатым и выразительным образом описывать вашу структуру базы данных.
Извлечение данных
Основной способ извлечения данных — использование 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\Event\EventManager для справки по системе событий.
Ссылка: https://book.cakephp.org/4/en/orm/table-objects.html#event-list
Константы
-
stringBUILD_VALIDATOR_EVENT'Model.buildValidator'
Название события, отправляемого при построении валидатора.
-
stringDEFAULT_VALIDATOR'default'
Имя набора по умолчанию для проверки.
-
stringIS_UNIQUE_CLASSIsUnique::class
Имя класса IsUnique, которое используется.
-
stringRULES_CLASSRulesChecker::class
Имя класса правил, которое используется.
-
stringVALIDATOR_PROVIDER_NAME'table'
Псевдоним, назначенный этому объекту как валидаторам.
Резюме свойств
- $_alias protected
string|nullЧеловеческое имя, присвоенное этому конкретному экземпляру. Несколько объектов, представляющих одну и ту же таблицу базы данных, могут существовать с использованием разных псевдонимов.
- $_associations protected
Cake\ORM\AssociationCollectionКонтейнер ассоциаций для этой Таблицы.
- $_behaviors protected
Cake\ORM\BehaviorRegistryBehaviorRegistry для этой таблицы
- $_connection protected
Cake\Database\Connection|nullЭкземпляр подключения
- $_displayField protected
array<string>|string|nullИмя поля, представляющего удобочитаемое представление строки
- $_entityClass protected
stringИмя класса, представляющего отдельную строку для этой таблицы
- $_eventClass protected
stringИмя класса по умолчанию для новых объектов событий.
- $_eventManager protected
Cake\Event\EventManagerInterface|nullЭкземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.
- $_primaryKey protected
array<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
arrayCake\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
Возвращает объект ассоциации, настроенный для указанного псевдонима, если он есть.
-
findList() public
Настраивает объект запроса, чтобы результаты отображались в виде индексированного массива, что полезно для любых мест, где требуется список, например, для заполнения элементов select.
-
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 между этой таблицей и целевой таблицей. Ассоциация «имеет много» — это отношение 1-N.
-
hasOne() public
Создаёт новую ассоциацию HasOne между этой таблицей и целевой таблицей. Ассоциация «имеет один» — это отношение 1-1.
-
hasValidator() public
Проверяет, установлен ли валидатор.
-
implementedEvents() public
Получает обратные вызовы модели, которыми интересуется эта таблица.
-
initialize() public
Инициализирует экземпляр таблицы. Вызывается после конструктора.
-
loadInto() public
Загружает указанные ассоциации в переданный объект или список объектов, выполняя дополнительные запросы в базе данных и объединяя результаты в соответствующие свойства.
-
marshaller() public
Получает объект, используемый для маршалинга/преобразования данных массива в объекты.
-
newEmptyEntity() public
Создаёт новый объект сущности.
-
newEntities() public
Создаёт список сущностей + связанных сущностей из массива.
-
newEntity() public
Создаёт новую сущность + связанные сущности из массива.
-
patchEntities() public
Объединяет каждый из переданных элементов
$dataв сущности, найденные в$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 для этого объекта.
-
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
Обработка делегирования поведения + динамических методов поиска.
Если ваша таблица использует какое-либо поведение, вы можете вызвать его, как если бы он был в объекте таблицы.
Параметры
-
string$method название метода, который нужно вызвать
-
array$args Список аргументов, переданных функции
Возвращает
mixedИсключения
BadMethodCallException__construct() public
__construct(array<string, mixed> $config = [])
Инициализирует новый экземпляр
Массив $config понимает следующие ключи:
- table: Имя таблицы базы данных для представления
- alias: Псевдоним, который будет назначен этой таблице (по умолчанию - имя таблицы)
- connection: Экземпляр подключения, который нужно использовать
- entityClass: Полное имя класса сущности, который будет представлять строки в этой таблице.
- schema: Объект \Cake\Database\Schema\TableSchemaInterface или массив, который можно передать в него.
- eventManager: Экземпляр менеджера событий для использования для внутренних событий
- behaviors: Объект BehaviorRegistry. Обычно не используется вне тестов.
- associations: Экземпляр AssociationCollection.
- validator: Экземпляр Validator, который назначается как набор валидации «по умолчанию», или ассоциативный массив, где ключ — имя набора валидации, а значение — экземпляр Validator.
Параметры
-
array<string, mixed>$config необязательный Список параметров для этой таблицы
__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(Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface> $entities, ArrayAccess|array $options = []): Cake\Datasource\EntityInterface|null
Параметры
-
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>$entities Сущности для удаления.
-
ArrayAccess|array$options необязательный Используемые параметры.
Возвращает
Cake\Datasource\EntityInterface|null_dynamicFinder() protected
_dynamicFinder(string $method, array $args): Cake\ORM\Query
Предоставляет динамические методы findBy и findAllBy.
Параметры
-
string$method Имя метода, который был вызван.
-
array$args Список аргументов, переданных функции.
Возвращает
Cake\ORM\QueryИсключения
BadMethodCallExceptionпри отсутствии аргументов или при совместном использовании &, & или or.
_executeTransaction() protected
_executeTransaction(callable $worker, bool $atomic = true): mixed
Обрабатывает логику выполнения работника внутри транзакции.
Параметры
-
callable$worker Работник, который будет выполняться внутри транзакции.
-
bool$atomic необязательный Выполнять ли работника внутри транзакции базы данных.
Возвращает
mixed_getFindOrCreateQuery() protected
_getFindOrCreateQuery(Cake\ORM\Query|callable|array $search): Cake\ORM\Query
Возвращает объект запроса для findOrCreate().
Параметры
-
Cake\ORM\Query|callable|array$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 сущности, из которой были извлечены $данные
-
array$data Фактические данные, которые необходимо сохранить
Возвращает
Cake\Datasource\EntityInterface|falseИсключения
RuntimeExceptionесли не были предоставлены все первичные ключи или не могли быть сгенерированы, когда таблица имеет составные первичные ключи. Или когда у таблицы нет первичного ключа.
_newId() protected
_newId(array<string> $primary): string|null
Генерирует значение первичного ключа для новой записи.
По умолчанию это использует систему типов для генерации нового значения первичного ключа, если это возможно. Вы можете переопределить этот метод, если у вас есть особые требования к генерации идентификаторов.
Примечание. СУОБ не будет генерировать значения первичного ключа для составных первичных ключей. Вы можете переопределить _newId() в вашем классе таблицы.
Параметры
-
array<string>$primary Столбцы первичного ключа, для которых нужно получить новый идентификатор.
Возвращает
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(Cake\ORM\Query|callable|array $search, callable|null $callback = null, array<string, mixed> $options = []): Cake\Datasource\EntityInterface|array
Выполняет фактический поиск и/или создание сущности на основе переданных параметров.
Параметры
-
Cake\ORM\Query|callable|array$search Критерии поиска существующей записи или вызываемая функция, которая настраивает запрос поиска.
-
callable|null$callback необязательный Обратный вызов, который будет вызван для вновь созданных сущностей. Этот обратный вызов будет вызван перед сохранением сущности.
-
array<string, mixed>$options необязательный Параметры, которые нужно использовать при сохранении.
Возвращает
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(Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface> $entities, Cake\ORM\SaveOptionsBuilderArrayAccess|array $options = []): Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>
Параметры
-
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>$entities Сущности для сохранения.
-
Cake\ORM\SaveOptionsBuilderArrayAccess|array$options optional Параметры, используемые при вызове Table::save() для каждой сущности.
Возвращает
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>Вызывает исключения
Cake\ORM\Exception\PersistenceFailedExceptionЕсли сущность не может быть сохранена.
ExceptionЕсли сущность не может быть сохранена.
_setFieldMatchers() protected
_setFieldMatchers(array<string, mixed> $options, array<string> $keys): array
Из массива параметров проверяет, являются ли ключи, описанные в $keys, массивами, и изменяет значения на замыкания, которые будут конкатенировать каждую из свойств в массиве значений при передаче строки.
Это вспомогательная функция, используемая для форматеров результатов, которые могут принимать составные ключи при сравнении значений.
Параметры
-
array<string, mixed>$options исходные параметры, переданные в finder
-
array<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 сущность, из которой были извлечены $data
-
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::hasOne()
\Cake\ORM\Table::hasMany()
\Cake\ORM\Table::belongsToMany()
addBehavior() public
addBehavior(string $name, array<string, mixed> $options = []): $this
Добавление поведения.
Добавляет поведение в коллекцию поведений этой таблицы. Поведения обеспечивают простой способ создания горизонтально повторно используемых функций, которые могут предоставлять функциональность типа траита и позволяют прослушивать события.
Пример:
Загрузка поведения с некоторыми настройками.
$this->addBehavior('Tree', ['parent' => 'parentId']); Поведения обычно загружаются во время Table::initialize().
Параметры
-
string$name Имя поведения. Может быть коротким ссылкой на класс.
-
array<string, mixed>$options optional Параметры для использования поведения.
Возвращает
$thisВызывает исключения
RuntimeExceptionПри повторной загрузке поведения.
См. также
addBehaviors() public
addBehaviors(array $behaviors): $this
Добавляет массив поведений в коллекцию поведений таблицы.
Пример:
$this->addBehaviors([
'Timestamp',
'Tree' => ['level' => 'level'],
]); Параметры
-
array$behaviors Все поведения для загрузки.
Возвращает
$thisВызывает исключения
RuntimeExceptionПри повторной загрузке поведения.
aliasField() public
aliasField(string $field): string
Присваивает псевдоним полю с текущим псевдонимом таблицы.
Если поле уже имеет псевдоним, результатом будет no-op.
Параметры
-
string$field Поле для присвоения псевдонима.
Возвращает
stringassociations() public
associations(): Cake\ORM\AssociationCollection
Получение коллекции ассоциаций для этой таблицы.
Возвращает
Cake\ORM\AssociationCollectionbehaviors() public
behaviors(): Cake\ORM\BehaviorRegistry
Возвращает реестр поведений для этой таблицы.
Возвращает
Cake\ORM\BehaviorRegistrybelongsTo() public
belongsTo(string $associated, array<string, mixed> $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<string, mixed>$options optional список параметров для настройки определения ассоциации
Возвращает
Cake\ORM\Association\BelongsTobelongsToMany() public
belongsToMany(string $associated, array<string, mixed> $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'.
Этот метод возвращает объект ассоциации, который был создан.
Параметры
- $associated
псевдоним целевой таблицы. Используется для уникальной идентификации ассоциации.
- $options optional
список параметров для настройки определения ассоциации.
Возвращает
Cake\ORM\Association\BelongsToManybuildRules() public
buildRules(Cake\Datasource\RulesChecker $rules): Cake\ORM\RulesChecker
Возвращает объект RulesChecker после модификации объекта, переданного в качестве аргумента.
Подклассы должны переопределять этот метод, чтобы инициализировать правила, которые будут применяться к сущностям, сохранённым этим экземпляром.
Параметры
- $rules
Объект правил, который должен быть изменён.
Возвращает
Cake\ORM\RulesCheckercallFinder() public
callFinder(string $type, Cake\ORM\Query $query, array<string, mixed> $options = []): Cake\ORM\Query
Вызывает метод поиска и применяет его к переданному запросу.
Параметры
- $type
Имя вызываемого метода поиска.
- $query
Объект запроса, к которому применяются параметры метода поиска.
- $options optional
Список параметров, передаваемых методу поиска.
Возвращает
Cake\ORM\QueryВыбрасывает
BadMethodCallExceptioncheckAliasLengths() protected
checkAliasLengths(): void
Проверяет, помещаются ли все сочетания имен таблиц и столбцов, используемые в запросах, в максимальную длину, разрешённую драйвером базы данных.
Возвращает
voidВыбрасывает
RuntimeExceptionПри слишком большой длине сочетания псевдонимов
checkRules() public
checkRules(Cake\Datasource\EntityInterface $entity, string $operation = RulesChecker::CREATE, ArrayObject|array|null $options = null): bool
Возвращает, соответствует ли переданная сущность всем правилам, хранящимся в проверяющем объекте правил.
Параметры
- $entity
Сущность, проверяемая на корректность.
- $operation optional
Выполняемая операция. Может быть 'create', 'update' или 'delete'.
- $options optional
Параметры, передаваемые правилам.
Возвращает
boolcreateValidator() protected
createValidator(string $name): Cake\Validation\Validator
Создаёт валидатор с использованием пользовательского метода внутри вашего класса.
Этот метод используется только для создания нового валидатора и не сохраняет его в вашем объекте. Если вы хотите создать и повторно использовать валидаторы, используйте метод getValidator().
Параметры
- $name
Имя набора валидации, который нужно создать.
Возвращает
Cake\Validation\ValidatorВыбрасывает
RuntimeExceptiondefaultConnectionName() public static
defaultConnectionName(): string
Получить имя соединения по умолчанию.
Этот метод используется для получения имени соединения по умолчанию, если экземпляр создаётся через TableLocator без указания соединения.
Возвращает
stringСм. также
delete() public
delete(Cake\Datasource\EntityInterface $entity, ArrayAccess|array $options = []): bool
Удалить одну сущность.
Для ассоциаций HasMany и HasOne записи будут удалены в зависимости от параметра dependent. Записи таблицы соединения в ассоциациях BelongsToMany всегда будут удалены. Вы можете использовать параметр cascadeCallbacks при определении ассоциаций, чтобы изменить способ удаления связанных данных.
Параметры
-
atomicПо умолчанию true. При значении true удаление происходит в транзакции. -
checkRulesПо умолчанию true. Проверка правил удаления перед удалением записи.
События
-
Model.beforeDeleteСрабатывает перед выполнением удаления. Если остановлено, удаление будет прервано. Принимает событие, сущность и параметры. -
Model.afterDeleteСрабатывает после успешного выполнения удаления. Принимает событие, сущность и параметры. -
Model.afterDeleteCommitСрабатывает после подтверждения транзакции при атомарном удалении. Принимает событие, сущность и параметры.
Аргумент options будет преобразован в экземпляр \ArrayObject на период обработки обратных вызовов. Это позволяет слушателям изменять параметры, используемые в операции удаления.
Параметры
- $entity
Сущность, которую нужно удалить.
- $options optional
Параметры для удаления.
Возвращает
booldeleteAll() public
deleteAll(mixed $conditions): int
Удаляет все записи, соответствующие заданным условиям.
Этот метод не вызовет события beforeDelete/afterDelete. Если вам нужны эти события, сначала загрузите коллекцию записей и удалите их.
Этот метод не будет выполняться для атрибута cascade ассоциаций. Если вам нужно каскадное удаление вместе с этим методом, используйте внешние ключи базы данных + правила ON CASCADE.
Параметры
- $conditions
Возвращает
intdeleteMany() public
deleteMany(Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface> $entities, ArrayAccess|array $options = []): Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>|false
Удаляет несколько сущностей таблицы.
Записи будут удалены в транзакции, которая будет откачена, если удаление одной из записей завершится неудачей из-за несоответствия валидации или ошибки базы данных.
Параметры
- $entities
Сущности для удаления.
- $options optional
Параметры, используемые при вызове Table::save() для каждой сущности.
Возвращает
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>|falseСм. также
deleteManyOrFail() public
deleteManyOrFail(Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface> $entities, ArrayAccess|array $options = []): Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>
Удаляет несколько сущностей таблицы.
Записи будут удалены в транзакции, которая будет откачена, если удаление одной из записей завершится неудачей из-за несоответствия валидации или ошибки базы данных.
Параметры
- $entities
Сущности для удаления.
- $options optional
Параметры, используемые при вызове Table::save() для каждой сущности.
Возвращает
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>Выбрасывает
Cake\ORM\Exception\PersistenceFailedExceptionСм. также
deleteOrFail() public
deleteOrFail(Cake\Datasource\EntityInterface $entity, ArrayAccess|array $options = []): true
Попытка удалить сущность или выбросить PersistenceFailedException, если сущность новая, не имеет значения первичного ключа, проверки правил приложения завершились неудачно или удаление было прервано обратным вызовом.
Параметры
-
Cake\Datasource\EntityInterface$entity Удаляемая сущность.
-
ArrayAccess|array$options optional Параметры для удаления.
Возвращает
trueВыбрасывает
Cake\ORM\Exception\PersistenceFailedExceptionСм. также
dispatchEvent() public
dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\EventInterface
Обёртка для создания и отправки событий.
Возвращает отправленное событие.
Параметры
-
string$name Имя события.
-
array|null$data optional Любое значение, которое вы хотите передать с этим событием, чтобы его могли прочитать слушатели.
-
object|null$subject optional Объект, к которому относится это событие (по умолчанию $this).
Возвращает
Cake\Event\EventInterfaceexists() public
exists(array $conditions): bool
Возвращает true, если в этом репозитории есть запись, соответствующая указанным условиям.
Параметры
-
array$conditions
Возвращает
boolfind() public
find(string $type = 'all', array<string, mixed> $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']
]); Использование интерфейса билдера:
$query = $articles->find() ->where(['published' => 1]) ->limit(10) ->contain(['Users', 'Comments']);
Вызов находок
Метод find() — точка входа для пользовательских методов поиска. Вы можете вызвать поиск, указав тип:
$query = $articles->find('published'); Вызовет метод findPublished.
Параметры
-
string$type optional тип запроса
-
array<string, mixed>$options optional Массив, который будет передан в Query::applyOptions()
Возвращает
Cake\ORM\QueryfindAll() public
findAll(Cake\ORM\Query $query, array<string, mixed> $options): Cake\ORM\Query
Возвращает запрос, как он был передан.
По умолчанию findAll() не применяет никаких условий, вы можете переопределить этот метод в подклассах, чтобы изменить работу find('all').
Параметры
-
Cake\ORM\Query$query Запрос для поиска
-
array<string, mixed>$options Параметры поиска
Возвращает
Cake\ORM\QueryfindAssociation() protected
findAssociation(string $name): Cake\ORM\Association|null
Возвращает объект ассоциации, настроенный для указанного псевдонима, если таковой имеется.
Аргумент name также поддерживает синтаксис точек для доступа к более глубоким ассоциациям.
$users = $this->getAssociation('Articles.Comments.Users'); Параметры
-
string$name Псевдоним, используемый для ассоциации.
Возвращает
Cake\ORM\Association|nullfindList() public
findList(Cake\ORM\Query $query, array<string, mixed> $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'
]
] Параметры
-
Cake\ORM\Query$query Запрос для поиска
-
array<string, mixed>$options Параметры для поиска
Возвращает
Cake\ORM\QueryfindOrCreate() public
findOrCreate(Cake\ORM\Query|callable|array $search, callable|null $callback = null, array<string, mixed> $options = []): Cake\Datasource\EntityInterface
Ищет существующую запись или создаёт новую.
Проводится поиск() для поиска существующей записи, используя атрибуты, определённые в $search. Если записи соответствуют условиям, возвращается первая запись.
Если запись не найдена, создаётся новая сущность с свойствами $search. Если предоставлен обратный вызов, он будет вызван, позволяя определить дополнительные значения по умолчанию. Новая сущность будет сохранена и возвращена.
Если условия поиска требуют настраиваемого порядка, ассоциаций или условий, то параметр $search может быть вызываемой функцией, которая принимает запрос в качестве аргумента, или объектом \Cake\ORM\Query, переданным в качестве параметра $search. Это позволяет настроить результаты поиска.
Параметры
Массив options передаётся методу save со следующими исключениями:
- atomic: Выполнять ли методы find, save и обратные вызовы внутри транзакции базы данных (по умолчанию: true)
- defaults: Использовать ли критерии поиска в качестве значений по умолчанию для новой сущности (по умолчанию: true)
Параметры
-
Cake\ORM\Query|callable|array$search Критерии поиска существующих записей. Обратите внимание, что при передаче объекта запроса вам нужно будет использовать 2-й аргумент метода, чтобы изменить данные сущности перед сохранением.
-
callable|null$callback optional Обратный вызов, который будет вызван для вновь созданных сущностей. Этот обратный вызов будет вызван *до* сохранения сущности.
-
array<string, mixed>$options optional Параметры сохранения.
Возвращает
Cake\Datasource\EntityInterfaceВыбрасывает
Cake\ORM\Exception\PersistenceFailedExceptionПри невозможности сохранения сущности
findThreaded() public
findThreaded(Cake\ORM\Query $query, array<string, mixed> $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'
]); Параметры
-
Cake\ORM\Query$query Запрос для поиска
-
array<string, mixed>$options Опции поиска
Возвращает
Cake\ORM\Queryget() public
get(mixed $primaryKey, array<string, mixed> $options = []): Cake\Datasource\EntityInterface
Возвращает одну запись после поиска по её первичному ключу. Если запись не найдена, этот метод выбрасывает исключение.
Использование
Получение статьи и некоторых отношений:
$article = $articles->get(1, ['contain' => ['Users', 'Comments']]);
Параметры
-
mixed$primaryKey Значение первичного ключа для поиска
-
array<string, mixed>$options optional Опции, принимаемые
Table::find()
Возвращает
Cake\Datasource\EntityInterfaceВыбрасывает
Cake\Datasource\Exception\RecordNotFoundExceptionЕсли запись с указанным идентификатором не найдена
Cake\Datasource\Exception\InvalidPrimaryKeyExceptionЕсли $primaryKey имеет неверное количество элементов.
См. также
getAlias() public
getAlias(): string
Возвращает псевдоним таблицы.
Возвращает
stringgetAssociation() public
getAssociation(string $name): Cake\ORM\Association
Возвращает объект ассоциации, настроенный для указанного псевдонима.
Аргумент name также поддерживает синтаксис точек для доступа к более глубоким ассоциациям.
$users = $this->getAssociation('Articles.Comments.Users'); Обратите внимание, что этот метод требует наличия ассоциации, в противном случае он выбросит исключение. Если вы не уверены, используйте hasAssociation() перед вызовом этого метода.
Параметры
-
string$name Псевдоним, используемый для ассоциации.
Возвращает
Cake\ORM\AssociationИсключения
InvalidArgumentExceptiongetBehavior() public
getBehavior(string $name): Cake\ORM\Behavior
Получить поведение из реестра.
Параметры
-
string$name Псевдоним поведения, который нужно получить из реестра.
Возвращает
Cake\ORM\BehaviorИсключения
InvalidArgumentExceptionЕсли поведение не существует.
getConnection() public
getConnection(): Cake\Database\Connection
Возвращает экземпляр соединения.
Возвращает
Cake\Database\ConnectiongetDisplayField() public
getDisplayField(): array<string>|string|null
Возвращает поле отображения.
Возвращает
array<string>|string|nullgetEntityClass() public
getEntityClass(): string
Возвращает класс, используемый для гидратации строк для этой таблицы.
Возвращает
stringgetEventManager() public
getEventManager(): Cake\Event\EventManagerInterface
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации любых новых слушателей или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по своему усмотрению.
Возвращает
Cake\Event\EventManagerInterfacegetPrimaryKey() public
getPrimaryKey(): array<string>|string
Возвращает имя поля первичного ключа.
Возвращает
array<string>|stringgetRegistryAlias() public
getRegistryAlias(): string
Возвращает ключ реестра таблицы, используемый для создания этого экземпляра таблицы.
Возвращает
stringgetSaveOptionsBuilder() public
getSaveOptionsBuilder(array<string, mixed> $options = []): Cake\ORM\SaveOptionsBuilder
Получает экземпляр SaveOptionsBuilder.
Параметры
-
array<string, mixed>$options optional Параметры для анализа билдером.
Возвращает
Cake\ORM\SaveOptionsBuildergetSchema() public
getSchema(): Cake\Database\Schema\TableSchemaInterface
Возвращает объект схемы таблицы, описывающий свойства этой таблицы.
Возвращает
Cake\Database\Schema\TableSchemaInterfacegetTable() public
getTable(): string
Возвращает имя таблицы базы данных.
Это может включать имя схемы базы данных, если оно задано с использованием setTable().
Возвращает
stringgetValidator() 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\ValidatorhasAssociation() public
hasAssociation(string $name): bool
Проверяет, существует ли определённая ассоциация в этом экземпляре Table.
Аргумент name также поддерживает синтаксис точек для доступа к более глубоким ассоциациям.
$hasUsers = $this->hasAssociation('Articles.Comments.Users'); Параметры
-
string$name Псевдоним, используемый для ассоциации.
Возвращает
boolhasBehavior() public
hasBehavior(string $name): bool
Проверяет, загружено ли поведение с данным псевдонимом.
Параметры
-
string$name Псевдоним поведения для проверки.
Возвращает
boolhasField() public
hasField(string $field): bool
Проверка наличия определённого поля/колонки в таблице.
Делегирует запрос к объекту схемы и проверяет наличие колонки, используя экземпляр Schema\Table.
Параметры
-
string$field Поле для проверки.
Возвращает
boolhasFinder() public
hasFinder(string $type): bool
Возвращает true, если поиск существует для таблицы
Параметры
-
string$type имя поиска для проверки
Возвращает
boolhasMany() public
hasMany(string $associated, array<string, mixed> $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<string, mixed>$options optional Список параметров для настройки определения ассоциации
Возвращает
Cake\ORM\Association\HasManyhasOne() public
hasOne(string $associated, array<string, mixed> $options = []): Cake\ORM\Association\HasOne
Создаёт новую ассоциацию HasOne между этой таблицей и целевой таблицей. Ассоциация «имеет один» — это отношение 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<string, mixed>$options optional список опций для настройки определения ассоциации
Возвращаемое значение
Cake\ORM\Association\HasOnehasValidator() public
hasValidator(string $name): bool
Проверяет, установлен ли валидатор.
Параметры
-
string$name Имя валидатора.
Возвращаемое значение
boolimplementedEvents() public
implementedEvents(): array<string, mixed>
Получает обратные вызовы модели, к которым заинтересована данная таблица.
Реализуя стандартные методы, предполагается, что класс таблицы заинтересован в соответствующем событии.
Переопределите этот метод, если вам нужно добавить обработчики событий, не относящиеся к стандарту. Или если вы хотите, чтобы ваша таблица прослушивала нестандартные события.
Стандартная карта методов:
- 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<string, mixed>initialize() public
initialize(array<string, mixed> $config): void
Инициализирует экземпляр таблицы. Вызывается после конструктора.
Вы можете использовать этот метод для определения ассоциаций, добавления бихевиоров, определения валидации и выполнения других необходимых операций инициализации.
public function initialize(array $config)
{
$this->belongsTo('Users');
$this->belongsToMany('Tagging.Tags');
$this->setPrimaryKey('something_else');
} Параметры
-
array<string, mixed>$config Параметры конфигурации, переданные в конструктор
Возвращаемое значение
voidloadInto() 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>См. также
marshaller() public
marshaller(): Cake\ORM\Marshaller
Получить объект, используемый для маршаллирования/преобразования данных массива в объекты.
Переопределите этот метод, если вы хотите, чтобы объект таблицы использовал пользовательскую логику маршаллирования.
Возвращаемое значение
Cake\ORM\MarshallerСм. также
newEmptyEntity() public
newEmptyEntity(): Cake\Datasource\EntityInterface
Создаёт новый объект сущности.
Внимание: Это не вызывает никакой проверки полей. Эта сущность может быть сохранена без ошибок валидации как пустая запись. Всегда заполняйте необходимые поля перед сохранением.
Возвращаемое значение
Cake\Datasource\EntityInterfacenewEntities() public
newEntities(array $data, array<string, mixed> $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<string, mixed>$options optional Список параметров для гидратации объектов.
Возвращаемое значение
arrayCake\Datasource\EntityInterface>newEntity() public
newEntity(array $data, array<string, mixed> $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<string, mixed>$options optional Список параметров для гидратации объекта.
Возвращаемое значение
Cake\Datasource\EntityInterfaceСм. также
patchEntities() public
patchEntities(Traversable|arrayCake\Datasource\EntityInterface> $entities, array $data, array<string, mixed> $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 для изменения данных запроса перед преобразованием в объекты.
Параметры
-
Traversable|arrayCake\Datasource\EntityInterface>$entities объекты, которым будут объединены данные
-
array$data список массивов для объединения в объекты
-
array<string, mixed>$options optional Список параметров для гидратации объектов.
Возвращаемое значение
arrayCake\Datasource\EntityInterface>patchEntity() public
patchEntity(Cake\Datasource\EntityInterface $entity, array $data, array<string, mixed> $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<string, mixed>$options необязательно Список опций для гидрации объекта.
Возвращает
Cake\Datasource\EntityInterfaceСм. также
query() public
query(): Cake\ORM\Query
Создаёт новый экземпляр Query для таблицы.
Возвращает
Cake\ORM\QueryremoveBehavior() public
removeBehavior(string $name): $this
Удаляет поведение из реестра поведения этой таблицы.
Пример:
Удаление поведения из этой таблицы.
$this->removeBehavior('Tree'); Параметры
-
string$name Псевдоним, с которым было добавлено поведение.
Возвращает
$thisСм. также
rulesChecker() public
rulesChecker(): Cake\Datasource\RulesChecker
Возвращает RulesChecker для этого экземпляра.
Объект RulesChecker используется для проверки сущности на соответствие правилам, которые могут включать сложную логику или данные, которые необходимо извлечь из соответствующих источников данных.
Возвращает
Cake\Datasource\RulesCheckerСм. также
save() public
save(Cake\Datasource\EntityInterface $entity, ArrayAccess|array $options = []): Cake\Datasource\EntityInterface|false
Сохраняет сущность на основе помеченных как изменённые полей и возвращает ту же сущность после успешного сохранения или false в случае ошибки.
Опции
Массив опций принимает следующие ключи:
- atomic: Выполнять ли сохранение и обратные вызовы внутри транзакции базы данных (по умолчанию: true)
- checkRules: Проверять ли правила на сущности перед сохранением; если проверка завершится неудачно, операция сохранения будет прервана. (по умолчанию: true)
- associated: Если
true, будут сохранены связанные сущности 1-го уровня, как они найдены в переданном$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 сущность, которая будет сохранена
-
ArrayAccess|array$options необязательно Опции, которые нужно использовать при сохранении.
Возвращает
Cake\Datasource\EntityInterface|falseИсключения
Cake\ORM\Exception\RolledbackTransactionExceptionЕсли транзакция прервана в событии afterSave.
saveMany() public
saveMany(Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface> $entities, Cake\ORM\SaveOptionsBuilderArrayAccess|array $options = []): Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>|false
Сохраняет несколько сущностей таблицы.
Записи будут сохранены в транзакции, которая будет откатана, если какая-либо запись не будет сохранена из-за неудачной проверки или ошибки базы данных.
Параметры
-
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>$entities Сущности для сохранения.
-
Cake\ORM\SaveOptionsBuilderArrayAccess|array$options необязательно Опции, используемые при вызове Table::save() для каждой сущности.
Возвращает
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>|falseИсключения
ExceptionsaveManyOrFail() public
saveManyOrFail(Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface> $entities, ArrayAccess|array $options = []): Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>
Сохраняет несколько сущностей таблицы.
Записи будут сохранены в транзакции, которая будет откатана, если какая-либо запись не будет сохранена из-за неудачной проверки или ошибки базы данных.
Параметры
-
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>$entities Сущности для сохранения.
-
ArrayAccess|array$options необязательно Опции, используемые при вызове Table::save() для каждой сущности.
Возвращает
Cake\Datasource\ResultSetInterface|arrayCake\Datasource\EntityInterface>Исключения
ExceptionCake\ORM\Exception\PersistenceFailedExceptionЕсли сущность не могла быть сохранена.
saveOrFail() public
saveOrFail(Cake\Datasource\EntityInterface $entity, ArrayAccess|array $options = []): Cake\Datasource\EntityInterface
Попробуйте сохранить сущность или выбросить PersistenceFailedException, если проверки прикладных правил завершились неудачей, сущность содержит ошибки или сохранение было прервано обратным вызовом.
Параметры
-
Cake\Datasource\EntityInterface$entity сущность, которая будет сохранена
-
ArrayAccess|array$options необязательно Опции, которые нужно использовать при сохранении.
Возвращает
Cake\Datasource\EntityInterfaceИсключения
Cake\ORM\Exception\PersistenceFailedExceptionПри невозможности сохранения сущности
См. также
setAlias() public
setAlias(string $alias): $this
Устанавливает псевдоним таблицы.
Параметры
-
string$alias Псевдоним таблицы
Возвращает
$thissetConnection() public
setConnection(Cake\Database\Connection $connection): $this
Устанавливает экземпляр соединения.
Параметры
-
Cake\Database\Connection$connection Экземпляр соединения
Возвращает
$thissetDisplayField() public
setDisplayField(array<string>|string $field): $this
Устанавливает поле отображения.
Параметры
-
array<string>|string$field Имя, используемое в качестве поля отображения.
Возвращает
$thissetEntityClass() 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 устанавливаемый менеджер событий
Возвращает
$thissetPrimaryKey() public
setPrimaryKey(array<string>|string $key): $this
Устанавливает имя первичного ключа.
Параметры
-
array<string>|string$key Устанавливает новое имя, используемое в качестве первичного ключа
Возвращает
$thissetRegistryAlias() public
setRegistryAlias(string $registryAlias): $this
Устанавливает ключ реестра таблиц, используемый для создания экземпляра этой таблицы.
Параметры
-
string$registryAlias Ключ для доступа к этому объекту.
Возвращает
$thissetSchema() public
setSchema(Cake\Database\Schema\TableSchemaInterface|array $schema): $this
Устанавливает объект схемы таблицы, описывающий свойства этой таблицы.
Если передан массив, из него будет создан новый объект TableSchemaInterface, который будет использоваться в качестве схемы для этой таблицы.
Параметры
-
Cake\Database\Schema\TableSchemaInterface|array$schema Схема, используемая для этой таблицы
Возвращает
$thissetTable() public
setTable(string $table): $this
Устанавливает имя таблицы базы данных.
Это может включать имя схемы базы данных в формате 'схема.таблица'. Если имя необходимо заключить в кавычки, включите автоматическое заключение идентификаторов в кавычки.
Параметры
-
string$table Имя таблицы.
Возвращает
$thissetValidator() 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 Объект валидатора, который нужно установить.
Возвращает
$thissubquery() public
subquery(): Cake\ORM\Query
Создаёт новый экземпляр Query::subquery() для таблицы.
Возвращает
Cake\ORM\QueryСм. также
updateAll() public
updateAll(Cake\Database\Expression\QueryExpressionClosure|array|string $fields, mixed $conditions): int
Обновляет все соответствующие записи.
Устанавливает $fields в предоставленные значения на основе $conditions. Этот метод не вызывает события beforeSave/afterSave. Если вам нужны эти события, сначала загрузите коллекцию записей и обновите их.
Параметры
-
Cake\Database\Expression\QueryExpressionClosure|array|string$fields -
mixed$conditions
Возвращает
intvalidateUnique() public
validateUnique(mixed $value, array<string, mixed> $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<string, mixed>$options Массив опций, необязательно содержащий ключ 'scope'. Также может быть контекстом валидации, если нет опций.
-
array|null$context optional Либо контекст валидации, либо null.
Возвращает
boolvalidationDefault() public
validationDefault(Cake\Validation\Validator $validator): Cake\Validation\Validator
Возвращает объект валидатора по умолчанию. Подклассы могут переопределять эту функцию, чтобы добавить набор правил валидации по умолчанию к объекту валидатора.
Параметры
-
Cake\Validation\Validator$validator Валидатор, который можно изменить, чтобы добавить к нему правила.
Возвращает
Cake\Validation\ValidatorvalidationMethodExists() 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
Имя поля, представляющего удобочитаемое представление строки
Тип
array<string>|string|null$_entityClass protected
Имя класса, представляющего одну строку для этой таблицы
Тип
string$_eventClass protected
Имя класса по умолчанию для новых объектов событий.
Тип
string$_eventManager protected
Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.
Тип
Cake\Event\EventManagerInterface|null$_primaryKey protected
Имя поля, представляющего первичный ключ в таблице
Тип
array<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
Список объектов валидации, индексированных по имени
Тип
arrayCake\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.3/class-Cake.ORM.Table.html