Spec-Zone.ru › CakePHP 3.6

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

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

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

Получение данных

Основной способ получения данных — использование 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

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

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

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

  • _transactionCommitted() protected
    Проверяет, выполнил бы вызывающий объект команду commit для транзакции.
  • _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" — это отношение M-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

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

  • 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

    Объединяет каждый из переданных элементов в сущности, найденные в $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, который назначается как набор валидации «по умолчанию», или ассоциативный массив, где ключ — имя набора валидации, а значение — экземпляр Validator.

Параметры

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

__debugInfo()source public

__debugInfo( )

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

Возвращает

массив

__get()source public

__get( string $property )

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

Параметры

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

Возвращает

Cake\ORM\Association

Исключения

RuntimeException
если нет ассоциации с таким именем

__isset()source public

__isset( string $property )

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

Параметры

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

Возвращает

boolean
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|Cake\ORM\Query|string $search )

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

Параметры

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

Возвращает

Cake\ORM\Query

_initializeSchema()source protected

_initializeSchema( Cake\Database\Schema\TableSchema $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|boolean

Выбрасывает

RuntimeException

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


_newId()source protected

_newId( array $primary )

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

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

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

Параметры

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

Возвращает

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

_onSaveSuccess()source protected

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

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

Параметры

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

Возвращает

boolean
True в случае успеха

Выбрасывает

Cake\ORM\Exception\RolledbackTransactionException

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


_processDelete()source protected

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

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

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

Параметры

Cake\Datasource\EntityInterface $entity
Сущность, подлежащая удалению.
ArrayObject $options
Параметры для удаления.

Возвращает

boolean
успех

Выбрасывает

InvalidArgumentException

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


_processFindOrCreate()source protected

_processFindOrCreate( array|callable $search , callable $callback = null , array $options = [] )

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

Параметры

массив|вызываемый объект $search

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

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

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

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

Возвращает

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

_processSave()source protected

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

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

Параметры

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

Возвращает

Cake\Datasource\EntityInterface|boolean

Выбрасывает

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 )

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

Параметры

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

Возвращает

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

_update()source protected

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

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

Параметры

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

Возвращает

Cake\Datasource\EntityInterface|boolean

Выбрасывает

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, и для каждого записи в этой таблице есть одна связанная запись в целевой таблице.

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

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

  • 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" — это отношение M-N.

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

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

  • 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

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

Аргумент 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|Cake\ORM\Query $search , callable $callback = null , array $options = [] )

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

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

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

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

Параметры

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

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

Параметры

массив|Cake\ORM\Query $search

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

вызываемая функция $callback необязательно null

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

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

Возвращает

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

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
Запрос для поиска
массив $options
Параметры для поиска

Возвращает

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

get()source public

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

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

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

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

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

Параметры

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

Возвращает

Cake\Datasource\EntityInterface

Исключения

Cake\Datasource\Exception\InvalidPrimaryKeyException

При неправильном количестве элементов в $primaryKey.


Реализация

Cake\Datasource\RepositoryInterface::get()

getAlias()source public

getAlias( )

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

Возвращает

строка

getAssociation()source public

getAssociation( string $name )

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

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

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

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

Параметры

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

Возвращает

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

Исключения

InvalidArgumentException

getBehavior()source public

getBehavior( string $name )

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

Параметры

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

Возвращает

Cake\ORM\Behavior

Исключения

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

getConnection()source public

getConnection( )

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

Возвращает

Cake\Database\Connection

getDisplayField()source public

getDisplayField( )

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

Возвращает

строка

getEntityClass()source public

getEntityClass( )

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

Возвращает

строка

getPrimaryKey()source public

getPrimaryKey( )

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

Возвращает

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

getRegistryAlias()source public

getRegistryAlias( )

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

Возвращает

строка

getSaveOptionsBuilder()source public

getSaveOptionsBuilder( array $options = [] )

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

Параметры

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

Возвращает

Cake\ORM\SaveOptionsBuilder

getSchema()source public

getSchema( )

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

Возвращает

Cake\Database\Schema\TableSchema

getTable()source public

getTable( )

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

Возвращает

строка

hasAssociation()source public

hasAssociation( string $name )

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

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

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

Параметры

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

Возвращает

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

hasBehavior()source public

hasBehavior( string $name )

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

Параметры

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

Возвращает

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

hasField()source public

hasField( string $field )

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

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

Параметры

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

Возвращает

логическое значение
True, если поле существует, false — если нет.

Реализация

Cake\Datasource\RepositoryInterface::hasField()

hasFinder()source public

hasFinder( string $type )

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

Параметры

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

Возвращает

boolean

hasMany()source public

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

Создает новую связь HasMany между этой таблицей и целевой таблицей. Связь "имеет много" — это отношение 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 между этой таблицей и целевой таблицей. Связь "имеет один" — это отношение 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 для изменения данных запроса перед преобразованием их в сущности.

Параметры

array|null $data необязательный null
Данные для создания сущности.
array $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[]|Traversable $entities

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

array $data
список массивов для объединения с сущностями
array $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/boolean/string/integer/float), если свойство в настоящее время имеет идентичное значение, вызыватель свойства не будет вызван, и свойство не будет помечено как изменённое. Это оптимизация для предотвращения ненужных обновлений полей при сохранении сущностей.

Параметры

Cake\Datasource\EntityInterface $entity

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

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

Возвращает

Cake\Datasource\EntityInterface

Реализация

Cake\Datasource\RepositoryInterface::patchEntity()

primaryKey()source public deprecated

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

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

Устарело

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

Параметры

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

Возвращает

string|array

query()source public

query( )

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

Возвращает

Cake\ORM\Query

Реализация

Cake\Datasource\RepositoryInterface::query()

registryAlias()source public deprecated

registryAlias( string|null $registryAlias = null )

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

Устарело

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

Параметры

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

Возвращает

string

removeBehavior()source public

removeBehavior( string $name )

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

Пример:

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

$this->removeBehavior('Tree');

Параметры

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

Возвращает


$this

См.

Cake\ORM\Behavior

save()source public

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

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

Возвращает

Cake\Datasource\EntityInterface|false

Выбрасывает

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

Реализация

Cake\Datasource\RepositoryInterface::save()

saveMany()source public

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

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

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

Параметры

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

Возвращает

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

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);

Параметры

строка $name
Имя валидатора, который нужно установить.
Cake\Validation\Validator $validator
Объект валидатора, который нужно установить.

Возвращает


$this

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 вместо этого.

Параметры

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

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

Возвращает

Cake\Validation\Validator

Исключения

RuntimeException

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

getAlias(), getRegistryAlias()

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

getEventManager()

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

$_aliassource

protected строка

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

$_associationssource

protected Cake\ORM\AssociationCollection

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

$_behaviorssource

protected Cake\ORM\BehaviorRegistry

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

$_connectionsource

protected Cake\Database\Connection

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

$_displayFieldsource

protected строка

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

$_entityClasssource

protected строка

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

$_primaryKeysource

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

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

$_registryAliassource

protected строка

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

$_schemasource

protected Cake\Database\Schema\TableSchema

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

$_tablesource

protected строка

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

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

Spec-Zone.ru

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