Spec-Zone.ru › CakePHP 3.8

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

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

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

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

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

Динамические поиск

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

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

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

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

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

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

Обработчики/события

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

  • beforeFind(Event $event, Query $query, ArrayObject $options, boolean $primary) Срабатывает перед каждой операцией поиска. Останавливая событие и возвращая значение, можно полностью обойти операцию поиска. Все изменения, внесенные в экземпляр $query, сохранятся на весь поиск. Параметр $primary указывает, является ли это основной запрос или ассоциированный запрос.

  • buildValidator(Event $event, Validator $validator, string $name) Позволяет слушателям изменять правила валидации для предоставленного валидатора.

  • buildRules(Event $event, RulesChecker $rules) Позволяет слушателям изменять проверку правил, добавляя дополнительные правила.

  • beforeRules(Event $event, EntityInterface $entity, ArrayObject $options, string $operation) Срабатывает перед проверкой сущности с использованием правил. Останавливая это событие, можно вернуть конечное значение операции проверки правил.

  • afterRules(Event $event, EntityInterface $entity, ArrayObject $options, bool $result, string $operation) Срабатывает после проверки правил сущности. Останавливая это событие, можно вернуть конечное значение операции проверки правил.

  • beforeSave(Event $event, EntityInterface $entity, ArrayObject $options) Срабатывает перед сохранением каждой сущности. Остановка этого события приведет к прерыванию операции сохранения. Когда событие остановлено, результат события будет возвращен.

  • afterSave(Event $event, EntityInterface $entity, ArrayObject $options) Срабатывает после сохранения сущности.

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

  • beforeDelete(Event $event, EntityInterface $entity, ArrayObject $options) Срабатывает перед удалением сущности. Остановкой этого события вы прервете операцию удаления.

  • afterDelete(Event $event, EntityInterface $entity, ArrayObject $options) Срабатывает после удаления сущности.

Cake\ORM\Table реализует Cake\Datasource\RepositoryInterface, Cake\Event\EventListenerInterface, Cake\Event\EventDispatcherInterface, Cake\Validation\ValidatorAwareInterface использует Cake\Event\EventDispatcherTrait , Cake\Datasource\RulesAwareTrait , Cake\Validation\ValidatorAwareTrait
Пространство имён: Cake\ORM
См.: \Cake\Event\EventManager для справки по системе событий.
Расположение: ORM/Table.php

Резюме констант

  • string

    BUILD_VALIDATOR_EVENT
    'Model.buildValidator'
  • string

    IS_UNIQUE_CLASS
    Cake\ORM\IsUnique::class
  • string

    RULES_CLASS
    RulesChecker::class
  • string

    VALIDATOR_PROVIDER_NAME
    'table'

Унаследованные константы

  • DEFAULT_VALIDATOR

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

  • $_alias protected
    string

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

  • $_associations protected
    Cake\ORM\AssociationCollection
    Контейнер ассоциаций для этой таблицы.
  • $_behaviors protected
    Cake\ORM\BehaviorRegistry
    BehaviorRegistry для этой таблицы
  • $_connection protected
    Cake\Database\Connection
    Экземпляр соединения
  • $_displayField protected
    string
    Имя поля, представляющего удобочитаемое представление строки
  • $_entityClass protected
    string
    Имя класса, представляющего отдельную строку для этой таблицы
  • $_primaryKey protected
    string|array
    Имя поля, представляющего первичный ключ в таблице
  • $_registryAlias protected
    string
    Ключ реестра, используемый для создания этого объекта таблицы
  • $_schema protected
    Cake\Database\Schema\TableSchema
    Объект схемы, содержащий описание полей этой таблицы
  • $_table protected
    string
    Имя таблицы, как оно указано в базе данных

Унаследованные свойства

  • _eventClass, _eventManager _rulesChecker _validatorClass, _validators

Резюме методов

  • __call() public
    Обработка делегирования поведения + динамические поиск.
  • __construct() public
    Инициализация нового экземпляра
  • __debugInfo() public

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

  • __get() public

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

  • __isset() public

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

  • _dynamicFinder() protected
    Обеспечивает динамические методы findBy и findByAll.
  • _executeTransaction() protected
    Обработка логики выполнения работника внутри транзакции.
  • _getFindOrCreateQuery() protected
    Получение объекта запроса для findOrCreate().
  • _initializeSchema() protected

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

  • _insert() protected
    Вспомогательная функция для обработки вставки данных сущности в таблицу
  • _newId() protected
    Генерация значения первичного ключа для новой записи.
  • _onSaveSuccess() protected

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

  • _processDelete() protected
    Выполнение операции удаления.
  • _processFindOrCreate() protected
    Выполнение фактического поиска и/или создания сущности на основе переданных опций.
  • _processSave() protected
    Выполнение фактического сохранения сущности на основе переданных опций.
  • _setFieldMatchers() protected

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

  • _transactionCommitted() protected
    Проверяет, выполнил ли вызывающий объект выполнение подтверждения транзакции.
  • _update() protected
    Вспомогательная функция для обработки обновления данных сущности в таблице
  • addAssociations() public
    Настройка нескольких ассоциаций.
  • addBehavior() public
    Добавить поведение.
  • addBehaviors() public
    Добавляет массив поведений в коллекцию поведений таблицы.
  • alias() public deprecated
    Возвращает псевдоним таблицы или задаёт новый.
  • aliasField() public
    Псевдоним поля с текущим псевдонимом таблицы.
  • association() public deprecated
    Возвращает объект ассоциации, настроенный для указанного псевдонима, если таковой есть.
  • associations() public
    Получить коллекцию ассоциаций для этой таблицы.
  • behaviors() public
    Возвращает реестр поведения для этой таблицы.
  • belongsTo() public

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

  • belongsToMany() public

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

  • buildRules() public
  • callFinder() public

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

  • connection() public deprecated
    Возвращает экземпляр соединения или задаёт новый.
  • defaultConnectionName() public static
    Получить имя соединения по умолчанию.
  • delete() public
    Удалить одну сущность.
  • deleteAll() public
    Удаляет все записи, соответствующие предоставленным условиям.
  • deleteOrFail() public

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

  • displayField() public deprecated
    Возвращает поле отображения или задаёт новое.
  • entityClass() public deprecated

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

  • exists() public

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

  • find() public

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

  • findAll() public
    Возвращает переданный запрос.
  • findAssociation() protected
    Возвращает объект ассоциации, настроенный для указанного псевдонима, если таковой есть.
  • findList() public

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

  • findOrCreate() public
    Находит существующую запись или создаёт новую.
  • findThreaded() public

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

  • get() public

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

  • getAlias() public
    Возвращает псевдоним таблицы.
  • getAssociation() public
    Возвращает объект ассоциации, настроенный для указанного псевдонима.
  • getBehavior() public
    Получить поведение из реестра.
  • getConnection() public
    Возвращает экземпляр соединения.
  • getDisplayField() public
    Возвращает поле отображения.
  • getEntityClass() public
    Возвращает класс, используемый для гидратации строк для этой таблицы.
  • getPrimaryKey() public
    Возвращает имя поля первичного ключа.
  • getRegistryAlias() public
    Возвращает ключ реестра таблицы, используемый для создания этого экземпляра таблицы.
  • getSaveOptionsBuilder() public
    Получает экземпляр SaveOptionsBuilder.
  • getSchema() public
    Возвращает объект схемы таблицы, описывающий свойства этой таблицы.
  • getTable() public
    Возвращает имя таблицы базы данных.
  • hasAssociation() public
    Проверяет, существует ли определённая ассоциация в данном экземпляре Table.
  • hasBehavior() public
    Проверяет, загружен ли обработчик с указанным псевдонимом.
  • hasField() public
    Проверяет наличие определённого поля/колонки в таблице.
  • hasFinder() public
    Возвращает true, если для таблицы существует поиск
  • hasMany() public

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

  • hasOne() public

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

  • implementedEvents() public
    Получает обратные вызовы модели, в которых заинтересована эта таблица.
  • initialize() public
    Инициализирует экземпляр таблицы. Вызывается после конструктора.
  • loadInto() public

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

  • marshaller() public
    Получает объект, используемый для преобразования массива данных в объекты.
  • newEntities() public
    Создаёт список объектов + связанных объектов из массива.
  • newEntity() public
    Создаёт новый объект + связанные объекты из массива.
  • patchEntities() public

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

  • patchEntity() public

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

  • primaryKey() public deprecated
    Возвращает имя поля первичного ключа или устанавливает новое.
  • query() public
    Создаёт новый экземпляр Query для таблицы.
  • registryAlias() public deprecated
    Возвращает ключ реестра таблицы, используемый для создания экземпляра этой таблицы, или задаёт его.
  • removeBehavior() public
    Удаляет обработчик из реестра обработчиков этой таблицы.
  • save() public

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

  • saveMany() public
    Сохраняет несколько объектов таблицы.
  • saveOrFail() public

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

  • schema() public deprecated
    Возвращает объект схемы таблицы, описывающий свойства этой таблицы.
  • setAlias() public
    Устанавливает псевдоним таблицы.
  • setConnection() public
    Устанавливает экземпляр подключения.
  • setDisplayField() public
    Устанавливает поле отображения.
  • setEntityClass() public
    Устанавливает класс, используемый для гидратации строк для этой таблицы.
  • setPrimaryKey() public
    Устанавливает имя поля первичного ключа.
  • setRegistryAlias() public
    Устанавливает ключ реестра таблицы, используемый для создания экземпляра этой таблицы.
  • setSchema() public
    Устанавливает объект схемы таблицы, описывающий свойства этой таблицы.
  • setTable() public
    Устанавливает имя таблицы базы данных.
  • table() public deprecated
    Возвращает имя таблицы базы данных или задаёт новое.
  • updateAll() public
    Обновляет все соответствующие записи.
  • validateUnique() public

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

  • validationMethodExists() protected

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

__call()source public

__call( string $method , array $args )

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

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

Параметры

строка $method
Имя вызываемого метода
массив $args
Список аргументов, передаваемых в функцию

Возвращает

смешанный

Исключения

BadMethodCallException

__construct()source public

__construct( array $config = [] )

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

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

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

Параметры

массив $config необязательно []
Список параметров для этой таблицы

__debugInfo()source public

__debugInfo( )

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

Возвращает

массив

__get()source public

__get( string $property )

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

Параметры

строка $property
имя ассоциации

Возвращает

Cake\ORM\Association

Исключения

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

__isset()source public

__isset( string $property )

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

Параметры

строка $property
имя ассоциации

Возвращает

логическое значение
END_OF_DOCUMENT_MARKER

_dynamicFinder()source protected

_dynamicFinder( string $method , array $args )

Обеспечивает динамические методы findBy и findByAll.

Параметры

строка $method
Имя метода, который был вызван.
массив $args
Список аргументов, переданных функции.

Возвращает

mixed

Вызывает

BadMethodCallException

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


_executeTransaction()source protected

_executeTransaction( callable $worker , boolean $atomic = true )

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

Параметры

вызываемый $worker
Задача, которая будет выполнена внутри транзакции.
логическое $atomic необязательно true
Выполнять ли задачу внутри базы данных транзакции.

Возвращает

mixed

_getFindOrCreateQuery()source protected

_getFindOrCreateQuery( array|callable|Cake\ORM\Query $search )

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

Параметры

массив|вызываемый|Cake\ORM\Query $search
Критерии для поиска существующих записей.

Возвращает

Cake\ORM\Query

_initializeSchema()source protected

_initializeSchema( Cake\Database\Schema\TableSchema $schema )

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

Пример:

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

Параметры

Cake\Database\Schema\TableSchema $schema
Определение таблицы, полученное из базы данных.

Возвращает

Cake\Database\Schema\TableSchema
изменённая схема

_insert()source protected

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

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

Параметры

Cake\Datasource\EntityInterface $entity
сущность, из которой были извлечены данные $data
массив $data
Фактические данные, которые необходимо сохранить

Возвращает

Cake\Datasource\EntityInterface|логическое

Вызывает

RuntimeException

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


_newId()source protected

_newId( array $primary )

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

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

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

Параметры

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

Возвращает

null|строка|массив
Либо null, либо значение первичного ключа, либо список значений первичных ключей.

_onSaveSuccess()source protected

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

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

Параметры

Cake\Datasource\EntityInterface $entity
сохраняемая сущность
ArrayObject $options
опции для операции сохранения

Возвращает

логическое
True при успехе

Вызывает

Cake\ORM\Exception\RolledbackTransactionException

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


_processDelete()source protected

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

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

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

Параметры

Cake\Datasource\EntityInterface $entity
Удаляемая сущность.
ArrayObject $options
Опции для удаления.

Возвращает

логическое
успех

Вызывает

InvalidArgumentException

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


_processFindOrCreate()source protected

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

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

Параметры

массив|вызываемый|Cake\ORM\Query $search

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

вызываемый $callback необязательно null

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

массив $options необязательно []
Опции, используемые при сохранении.

Возвращает

Cake\Datasource\EntityInterface
Сущность.

Вызывает

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

_processSave()source protected

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

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

Параметры

Cake\Datasource\EntityInterface $entity
сохраняемая сущность
ArrayObject $options
опции для операции сохранения

Возвращает

Cake\Datasource\EntityInterface|логическое

Вызывает

RuntimeException
Если сущность отсутствуют некоторые первичные ключи.
Cake\ORM\Exception\RolledbackTransactionException

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


_setFieldMatchers()source protected

_setFieldMatchers( array $options , array $keys )

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

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

Параметры

массив $options
Исходные опции, переданные в поиск.
массив $keys

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

Возвращает

массив

_transactionCommitted()source protected

_transactionCommitted( boolean $atomic , boolean $primary )

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

Параметры

логическое $atomic
True, если использовалась атомарная транзакция.
логическое $primary
True, если использовался первичный ключ.

Возвращает

логическое
Возвращает true, если транзакция была завершена.

_update()source protected

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

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

Параметры

Cake\Datasource\EntityInterface $entity
сущность, из которой были извлечены данные $data
массив $data
Фактические данные, которые необходимо сохранить

Возвращает

Cake\Datasource\EntityInterface|логическое

Вызывает

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

addAssociations()source public

addAssociations( array $params )

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

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

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

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

Параметры

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

Возвращает


$this

См. также

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

addBehavior()source public

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

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

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

Пример:

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

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

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

Параметры

строка $name
Имя поведения. Может быть коротким именем класса.
массив $options необязательно []
Опции для использования поведения.

Возвращает


$this

Выбрасывает

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

См. также

Cake\ORM\Behavior

addBehaviors()source public

addBehaviors( array $behaviors )

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

Пример:

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

Параметры

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

Возвращает


$this

Выбрасывает

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

alias()source public deprecated

alias( string|null $alias = null )

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

Устаревшее

3.4.0 Используйте setAlias()/getAlias() вместо этого.

Параметры

строка|null $alias необязательно null
новый псевдоним таблицы

Возвращает

строка

Реализация

Cake\Datasource\RepositoryInterface::alias()

aliasField()source public

aliasField( string $field )

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

Если поле уже имеет псевдоним, это приведет к бездействию.

Параметры

строка $field
Поле для назначения псевдонима.

Возвращает

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

association()source public deprecated

association( string $name )

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

Устаревшее

3.6.0 Используйте getAssociation() и Table::hasAssociation() вместо этого.

Параметры

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

Возвращает

Cake\ORM\Association|null
Ассоциация или null.

associations()source public

associations( )

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

Возвращает

Cake\ORM\AssociationCollection|Cake\ORM\Association[]
Коллекция объектов ассоциации.

behaviors()source public

behaviors( )

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

Возвращает

Cake\ORM\BehaviorRegistry
Экземпляр BehaviorRegistry.

belongsTo()source public

belongsTo( string $associated , array $options = [] )

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

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

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

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

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

Параметры

строка $associated

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

массив $options необязательно []
Список опций для конфигурации определения ассоциации

Возвращает

Cake\ORM\Association\BelongsTo

belongsToMany()source public

belongsToMany( string $associated , array $options = [] )

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

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

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

  • 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 необязательно []
Список опций для конфигурации определения ассоциации

Возвращает

Cake\ORM\Association\BelongsToMany

buildRules()source public

buildRules( Cake\ORM\RulesChecker $rules )

Параметры

Cake\ORM\RulesChecker $rules
Объект правил, подлежащий изменению.

Возвращает

Cake\ORM\RulesChecker

callFinder()source public

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

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

Параметры

строка $type
Имя вызываемого нахождения
Cake\ORM\Query $query
Объект запроса, к которому применяются параметры нахождения
массив $options необязательно []
Список опций для передачи в нахождение

Возвращает

Cake\ORM\Query

Выбрасывает

BadMethodCallException

connection()source public deprecated

connection( Cake\Datasource\ConnectionInterface $connection = null )

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

Устаревшее

3.4.0 Используйте setConnection()/getConnection() вместо этого.

Параметры

Cake\Datasource\ConnectionInterface $connection необязательно null
Новый экземпляр соединения

Возвращает

Cake\Datasource\ConnectionInterface
END_OF_DOCUMENT_MARKER

defaultConnectionName()source public static

defaultConnectionName( )

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

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

Возвращает

string

См. также

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

delete()source public

delete( Cake\Datasource\EntityInterface $entity , array|ArrayAccess $options = [] )

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

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

Параметры

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

События

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

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

Параметры

Cake\Datasource\EntityInterface $entity
Удаляемая сущность.
array|ArrayAccess $options необязательно []
Параметры для удаления.

Возвращает

boolean
успех

Реализация

Cake\Datasource\RepositoryInterface::delete()

deleteAll()source public

deleteAll( mixed $conditions )

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

Параметры

mixed $conditions

Условия, принимаются как Query::where().

Возвращает

integer
Количество затронутых строк.

Реализация

Cake\Datasource\RepositoryInterface::deleteAll()

deleteOrFail()source public

deleteOrFail( Cake\Datasource\EntityInterface $entity , array|ArrayAccess $options = [] )

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

Параметры

Cake\Datasource\EntityInterface $entity
Удаляемая сущность.
array|ArrayAccess $options необязательно []
Параметры для удаления.

Возвращает

boolean
успех

Исключения

Cake\ORM\Exception\PersistenceFailedException

См. также

\Cake\ORM\Table::delete()

displayField()source public deprecated

displayField( string|null $key = null )

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

Устарело

3.4.0 Используйте setDisplayField()/getDisplayField() вместо этого.

Параметры

string|null $key необязательно null
Устанавливает новое имя для поля отображения

Возвращает

string

entityClass()source public deprecated

entityClass( string|null $name = null )

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

Устарело

3.4.0 Используйте setEntityClass()/getEntityClass() вместо этого.

Параметры

string|null $name необязательно null
Имя класса

Возвращает

string

Исключения

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

exists()source public

exists( array|ArrayAccess $conditions )

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

Параметры

array|ArrayAccess $conditions
Список условий для запроса

Возвращает

boolean

Реализация

Cake\Datasource\RepositoryInterface::exists()

find()source public

find( string $type = 'all' , array|ArrayAccess $options = [] )

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

Событие Model.beforeFind

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

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

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

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

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

$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 необязательно 'all'
Тип запроса
array|ArrayAccess $options необязательно []
Массив, который будет передан в Query::applyOptions()

Возвращает

Cake\ORM\Query
Билдер запроса

Реализация

Cake\Datasource\RepositoryInterface::find()

findAll()source public

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

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

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

Параметры

Cake\ORM\Query $query
Запрос для поиска
array $options
Параметры для поиска

Возвращает

Cake\ORM\Query
Билдер запроса

findAssociation()source protected

findAssociation( string $name )

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

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

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

Параметры

string $name
Псевдоним ассоциации.

Возвращает

Cake\ORM\Association|null
Ассоциация или null.

findList()source public

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

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

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

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

[
 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'
]);

Результаты могут быть объединены в более крупные группы, если они имеют общее свойство. Вы можете настроить свойство для группировки, задав 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 $options
Параметры для поиска

Возвращает

Cake\ORM\Query
Билдер запроса

findOrCreate()source public

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

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

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

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

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

Параметры

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

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

Параметры

array|callable|Cake\ORM\Query $search

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

callable $callback необязательно null

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

array $options необязательно []
Параметры для сохранения.

Возвращает

Cake\Datasource\EntityInterface
Сущность.

Исключения

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

findThreaded()source public

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

Результаты этого нахождения будут вложенным массивом и подходят, если вы хотите использовать поле 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 $options
Параметры поиска

Возвращает

Cake\ORM\Query
Построитель запросов

get()source public

get( mixed $primaryKey , array|ArrayAccess $options = [] )

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

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

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

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

Параметры

mixed $primaryKey
Значение первичного ключа для поиска
array|ArrayAccess $options необязательно []
Параметры, принимаемые Table::find()

Возвращает

Cake\Datasource\EntityInterface

Исключения

Cake\Datasource\Exception\InvalidPrimaryKeyException

Когда у $primaryKey неверное количество элементов.


Реализация

Cake\Datasource\RepositoryInterface::get()

getAlias()source public

getAlias( )

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

Возвращает

string

getAssociation()source public

getAssociation( string $name )

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

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

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

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

Параметры

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

Возвращает

Cake\ORM\Association
Ассоциация.

Исключения

InvalidArgumentException

getBehavior()source public

getBehavior( string $name )

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

Параметры

string $name
Псевдоним поведения для получения из реестра.

Возвращает

Cake\ORM\Behavior

Исключения

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

getConnection()source public

getConnection( )

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

Возвращает

Cake\Database\Connection

getDisplayField()source public

getDisplayField( )

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

Возвращает

string

getEntityClass()source public

getEntityClass( )

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

Возвращает

string

getPrimaryKey()source public

getPrimaryKey( )

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

Возвращает

string|array

getRegistryAlias()source public

getRegistryAlias( )

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

Возвращает

string

getSaveOptionsBuilder()source public

getSaveOptionsBuilder( array $options = [] )

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

Параметры

array $options необязательно []
Параметры для анализа создателем.

Возвращает

Cake\ORM\SaveOptionsBuilder

getSchema()source public

getSchema( )

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

Возвращает

Cake\Database\Schema\TableSchema

getTable()source public

getTable( )

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

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

Возвращает

string

hasAssociation()source public

hasAssociation( string $name )

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

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

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

Параметры

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

Возвращает

boolean

hasBehavior()source public

hasBehavior( string $name )

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

Параметры

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

Возвращает

boolean
Существует ли поведение.

hasField()source public

hasField( string $field )

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

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

Параметры

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

Возвращает

boolean
True, если поле существует, false — если нет.

Реализация

Cake\Datasource\RepositoryInterface::hasField()

hasFinder()source public

hasFinder( string $type )

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

Параметры

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

Возвращает

булево значение

hasMany()source public

hasMany( string $associated , array $options = [] )

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

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

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

  • 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'.

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

Параметры

строка $associated

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

массив $options необязательно []
список опций для настройки определения ассоциации

Возвращает

Cake\ORM\Association\HasMany

hasOne()source public

hasOne( string $associated , array $options = [] )

Создаёт новую ассоциацию 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 из findera.

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

Параметры

строка $associated

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

массив $options необязательно []
список опций для настройки определения ассоциации

Возвращает

Cake\ORM\Association\HasOne

implementedEvents()source public

implementedEvents( )

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

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

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

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

  • Model.beforeMarshal => beforeMarshal
  • 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

Возвращает

массив

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

initialize()source public

initialize( array $config )

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

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

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

Параметры

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

loadInto()source public

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

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

Пример:

$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|массив $entities
одна сущность или список сущностей
массив $contain
Массив, совместимый с contain().

Возвращает

Cake\Datasource\EntityInterface|массив

См. также

\Cake\ORM\Query::contain()

marshaller()source public

marshaller( )

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

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

Возвращает

Cake\ORM\Marshaller

См. также

Cake\ORM\Marshaller

newEntities()source public

newEntities( array $data , array $options = [] )

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

По умолчанию все ассоциации в этой таблице будут гидратированы. Вы можете ограничить, какие ассоциации будут созданы, или включить более глубокие ассоциации, используя параметр 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 для изменения данных запроса перед их преобразованием в сущности.

Параметры

массив $data
Данные для создания сущности.
массив $options необязательно []
Список опций для гидратации объектов.

Возвращает

Cake\Datasource\EntityInterface[]
Массив гидратированных записей.

Реализация

Cake\Datasource\RepositoryInterface::newEntities()

newEntity()source public

newEntity( array|null $data = null , array $options = [] )

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

По умолчанию все ассоциации в этой таблице будут гидратированы. Вы можете ограничить создание ассоциаций или включить более глубокие ассоциации, используя параметр 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 для изменения данных запроса перед преобразованием их в сущности.

Параметры

массив|null $data необязательный null
Данные для создания сущности.
массив $options необязательный []
Список опций для гидратации объекта.

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

Cake\Datasource\EntityInterface

Реализация

Cake\Datasource\RepositoryInterface::newEntity()

patchEntities()source public

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

Объединяет каждый из элементов, переданных в $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[]|Перебираемый $entities

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

массив $data
список массивов, которые будут объединены в сущности
массив $options необязательный []
Список опций для гидратации объектов.

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

Cake\Datasource\EntityInterface[]

Реализация

Cake\Datasource\RepositoryInterface::patchEntities()

patchEntity()source public

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

Объединяет переданные $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']]
 ]
);

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

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

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

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

Параметры

Cake\Datasource\EntityInterface $entity

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

массив $data
список пар ключ-значение полей, которые будут объединены в сущность
массив $options необязательный []
Список опций для гидратации объекта.

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

Cake\Datasource\EntityInterface

Реализация

Cake\Datasource\RepositoryInterface::patchEntity()

primaryKey()source public deprecated

primaryKey( string|array|null $key = null )

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

Устаревшее

3.4.0 Используйте setPrimaryKey()/getPrimaryKey() вместо этого.

Параметры

строка|массив|null $key необязательный null
Устанавливает новое имя, которое будет использоваться в качестве первичного ключа.

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

строка|массив

query()source public

query( )

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

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

Cake\ORM\Query

Реализация

Cake\Datasource\RepositoryInterface::query()

registryAlias()source public deprecated

registryAlias( string|null $registryAlias = null )

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

Устаревшее

3.4.0 Используйте setRegistryAlias()/getRegistryAlias() вместо этого.

Параметры

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

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

строка

removeBehavior()source public

removeBehavior( string $name )

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

Пример:

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

$this->removeBehavior('Tree');

Параметры

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

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


$this

См.

Cake\ORM\Behavior

save()source public

save( Cake\Datasource\EntityInterface $entity , array $options = [] )

Сохраняет сущность, основываясь на полях, помеченных как изменённые, и возвращает ту же сущность после успешного сохранения или 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
массив $options необязательно []

Возвращает

Cake\Datasource\EntityInterface|false

Выбрасывает

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

Реализация

Cake\Datasource\RepositoryInterface::save()

saveMany()source public

saveMany( Cake\Datasource\EntityInterface[]|Cake\Datasource\ResultSetInterface $entities , array|ArrayAccess $options = [] )

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

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

Параметры

Cake\Datasource\EntityInterface[]|Cake\Datasource\ResultSetInterface $entities
Сущности для сохранения.
массив|ArrayAccess $options необязательно []
Параметры, используемые при вызове Table::save() для каждой сущности.

Возвращает

boolean|Cake\Datasource\EntityInterface[]|Cake\Datasource\ResultSetInterface
False при ошибке, список сущностей при успехе.

Выбрасывает

Exception

saveOrFail()source public

saveOrFail( Cake\Datasource\EntityInterface $entity , array|ArrayAccess $options = [] )

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

Параметры

Cake\Datasource\EntityInterface $entity
сущность для сохранения
массив|ArrayAccess $options необязательно []
Параметры для сохранения.

Возвращает

Cake\Datasource\EntityInterface

Выбрасывает

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

См. также

\Cake\ORM\Table::save()

schema()source public deprecated

schema( array|Cake\Database\Schema\TableSchema|null $schema = null )

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

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

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

Устарело 3.4.0 Используйте setSchema()/getSchema() вместо этого.

Параметры

массив|Cake\Database\Schema\TableSchema|null $schema необязательно null
Новая схема, которая будет использоваться для этой таблицы

Возвращает

Cake\Database\Schema\TableSchema

setAlias()source public

setAlias( string $alias )

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

Параметры

строка $alias
Псевдоним таблицы

Возвращает


$this

setConnection()source public

setConnection( Cake\Datasource\ConnectionInterface $connection )

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

Параметры

Cake\Datasource\ConnectionInterface $connection
Экземпляр подключения

Возвращает


$this

setDisplayField()source public

setDisplayField( string $key )

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

Параметры

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

Возвращает


$this

setEntityClass()source public

setEntityClass( string $name )

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

Параметры

строка $name
Название класса для использования

Возвращает


$this

Выбрасывает

Cake\ORM\Exception\MissingEntityException
если класс сущности не найден

setPrimaryKey()source public

setPrimaryKey( string|array $key )

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

Параметры

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

Возвращает


$this

setRegistryAlias()source public

setRegistryAlias( string $registryAlias )

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

Параметры

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

Возвращает


$this

setSchema()source public

setSchema( array|Cake\Database\Schema\TableSchema $schema )

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

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

Параметры

массив|Cake\Database\Schema\TableSchema $schema
Схема, используемая для этой таблицы

Возвращает


$this

setTable()source public

setTable( string $table )

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

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

Параметры

строка $table
Имя таблицы.

Возвращает


$this

table()source public deprecated

table( string|null $table = null )

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

Устарело

3.4.0 Используйте setTable()/getTable() вместо этого.

Параметры

string|null $table необязательно null
новое имя таблицы

Возвращает

string

updateAll()source public

updateAll( string|array|callable|Cake\Database\Expression\QueryExpression $fields , mixed $conditions )

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

Параметры

string|array|callable|Cake\Database\Expression\QueryExpression $fields
Хеш полей => нового значения.
mixed $conditions

Условия, используемые для поиска. Принимает все, что может принять Query::where().

Возвращает

integer
Количество обновлённых строк.

Реализация

Cake\Datasource\RepositoryInterface::updateAll()

validateUnique()source public

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

Метод валидации, используемый для проверки уникальности значения в столбце. Предназначен для использования с 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 $context необязательно null
Либо контекст валидации, либо null.

Возвращает

boolean
True, если значение уникально, или false, если было предоставлено нескалярное, не уникальное значение.

validationMethodExists()source protected

validationMethodExists( $method )

Методы, используемые из Cake\Event\EventDispatcherTrait

dispatchEvent()source public

dispatchEvent( string $name , array|null $data = null , object|null $subject = null )

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

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

Параметры

string $name
Имя события.
array|null $data необязательно null

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

object|null $subject необязательно null

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

Возвращает

Cake\Event\Event

eventManager()source public deprecated

eventManager( Cake\Event\EventManager $eventManager = null )

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

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

Устарело

3.5.0 Используйте getEventManager()/setEventManager() вместо этого.

Параметры

Cake\Event\EventManager $eventManager необязательно null
eventManager для установки

Возвращает

Cake\Event\EventManager

getEventManager()source public

getEventManager( )

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

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

Возвращает

Cake\Event\EventManager

setEventManager()source public

setEventManager( Cake\Event\EventManager $eventManager )

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

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

Параметры

Cake\Event\EventManager $eventManager
eventManager для установки

Возвращает


$this

Методы, используемые из Cake\Datasource\RulesAwareTrait

checkRules()source public

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

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

Параметры

Cake\Datasource\EntityInterface $entity
Сущность, подлежащая проверке на соответствие правилам.
string $operation необязательно RulesChecker::CREATE
Операция, выполняемая. 'create', 'update' или 'delete'.
ArrayObject|array|null $options необязательно null
Параметры для передачи правилам.

Возвращает

boolean

rulesChecker()source public

rulesChecker( )

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

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

Возвращает

Cake\Datasource\RulesChecker

См. также

Cake\Datasource\RulesChecker

Методы, используемые из Cake\Validation\ValidatorAwareTrait

createValidator()source protected

createValidator( string $name )

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

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

Параметры

string $name
Имя набора валидации для создания.

Возвращает

Cake\Validation\Validator

Выбрасывает

RuntimeException

getValidator()source public

getValidator( string|null $name = null )

Возвращает правила валидации, помеченные $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 необязательно null
Имя набора валидации для возврата.

Возвращает

Cake\Validation\Validator

hasValidator()source public

hasValidator( string $name )

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

Параметры

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

Возвращает

boolean

setValidator()source public

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

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

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

$validator = new \Cake\Validation\Validator($table);
$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
END_OF_DOCUMENT_MARKER

validationDefault()source public

validationDefault( Cake\Validation\Validator $validator )

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

Параметры

Cake\Validation\Validator $validator

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

Возвращает

Cake\Validation\Validator

validator()source public deprecated

validator( string|null $name = null , Cake\Validation\Validator $validator = null )

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

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

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

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

В противном случае вы можете самостоятельно построить объект и сохранить его в объекте таблицы:

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

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

Устарело

3.5.0 Используйте getValidator/setValidator вместо этого.

Параметры

string|null $name необязательно null
имя набора правил валидации для возврата
Cake\Validation\Validator $validator необязательно null

экземпляр валидатора для хранения, используйте null для получения валидатора.

Возвращает

Cake\Validation\Validator

Исключения

RuntimeException

Магические методы, унаследованные от Cake\Datasource\RepositoryInterface

getAlias(), getRegistryAlias()

Магические методы, унаследованные от Cake\Event\EventDispatcherInterface

getEventManager()

Подробности свойств

$_aliassource

protected string

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

$_associationssource

protected Cake\ORM\AssociationCollection

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

$_behaviorssource

protected Cake\ORM\BehaviorRegistry

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

$_connectionsource

protected Cake\Database\Connection

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

$_displayFieldsource

protected string

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

$_entityClasssource

protected string

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

$_primaryKeysource

protected string|array

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

$_registryAliassource

protected string

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

$_schemasource

protected Cake\Database\Schema\TableSchema

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

$_tablesource

protected string

Имя таблицы в базе данных

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.8/class-Cake.ORM.Table.html

Spec-Zone.ru

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