Spec-Zone.ru › CakePHP 3.8

Класс HasMany

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

Примером ассоциации HasMany является Автор имеет много Статей.

Cake\ORM\Association использует Cake\Core\ConventionsTrait , Cake\ORM\Locator\LocatorAwareTrait
Расширяется Cake\ORM\Association\HasMany
Пространство имён: Cake\ORM\Association
Расположение: ORM/Association/HasMany.php

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

  • string

    SAVE_APPEND
    'append'
  • string

    SAVE_REPLACE
    'replace'

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

  • MANY_TO_MANY, MANY_TO_ONE, ONE_TO_MANY, ONE_TO_ONE, STRATEGY_JOIN, STRATEGY_SELECT, STRATEGY_SUBQUERY

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

  • $_joinType protected
    string
    Тип соединения, используемого при добавлении ассоциации в запрос
  • $_saveStrategy protected
    string
    Стратегия сохранения, используемая этой ассоциацией
  • $_sort protected
    mixed
    Порядок возврата целевых записей
  • $_strategy protected
    string
    Имя стратегии, используемой для извлечения связанных записей.
  • $_validStrategies protected
    array
    Допустимые стратегии для этого типа ассоциации

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

  • _bindingKey, _cascadeCallbacks, _className, _conditions, _dependent, _finder, _foreignKey, _name, _propertyName, _sourceTable, _targetTable _tableLocator

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

  • _foreignKeyAcceptsNull() protected
    Проверяет флаг nullable внешнего ключа
  • _options() protected
    Обработка дополнительных параметров, переданных в конструктор.
  • _saveTarget() protected
    Сохраняет каждый из сущностей в целевой таблице и создаёт связи между родительской сущностью и каждой из сохранённых целевых сущностей.
  • _unlink() protected

    Удаляет/устанавливает в null связанные объекты, соответствующие $conditions. Действие, которое выполняется, зависит от зависимости между источником и целями, а также от возможности значения NULL внешнего ключа

  • _unlinkAssociated() protected

    Удаляет/устанавливает в null связанные объекты в соответствии с зависимостью между источником и целями и возможностью значения NULL внешнего ключа. Пропускает удаление записей, присутствующих в $remainingEntities

  • canBeJoined() public
    Можно ли выразить эту ассоциацию напрямую в соединении запроса
  • cascadeDelete() public
    Обрабатывает каскадное удаление из связанной модели.
  • defaultRowValue() public

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

  • eagerLoader() public

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

  • getForeignKey() public
    Получение имени поля, представляющего внешний ключ к таблице источника.
  • getSaveStrategy() public
    Получает стратегию, которая должна использоваться для сохранения.
  • getSort() public
    Получает порядок сортировки, в котором должны возвращаться целевые записи.
  • isOwningSide() public

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

  • link() public

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

  • replace() public

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

  • saveAssociated() public

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

  • saveStrategy() public deprecated

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

  • setSaveStrategy() public
    Устанавливает стратегию, которая должна использоваться для сохранения.
  • setSort() public
    Устанавливает порядок сортировки, в котором должны возвращаться целевые записи.
  • sort() public deprecated

    Устанавливает порядок сортировки, в котором должны возвращаться целевые записи. Если не переданы аргументы, возвращается текущее настроенное значение

  • type() public
    Получение типа отношения.
  • unlink() public

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

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

_foreignKeyAcceptsNull()source protected

_foreignKeyAcceptsNull( Cake\ORM\Table $table , array $properties )

Проверяет флаг nullable внешнего ключа

Параметры

Cake\ORM\Table $table
таблица, содержащая внешний ключ
массив $properties
список полей, составляющих внешний ключ

Возвращает

boolean

_options()source protected

_options( array $opts )

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

Параметры

массив $opts
исходный список параметров, переданных в конструктор

Переопределяет

Cake\ORM\Association::_options()
END_OF_DOCUMENT_MARKER

_saveTarget()source protected

_saveTarget( array $foreignKeyReference , Cake\Datasource\EntityInterface $parentEntity , array|Traversable $entities , array $options )

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

Параметры

массив $foreignKeyReference

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

Cake\Datasource\EntityInterface $parentEntity

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

массив|Перебираемый $entities

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

массив $options
список опций, принимаемых Table::save().

Возвращает

boolean
true при успехе, false в противном случае.

_unlink()source protected

_unlink( array $foreignKey , Cake\ORM\Table $target , array $conditions = [] , array $options = [] )

Удаляет/устанавливает null связанные объекты, соответствующие $conditions. Действие, которое выполняется, зависит от зависимости между исходными и целевыми объектами, а также от возможности наличия внешних ключей в нулевом значении

Параметры

массив $foreignKey
массив свойств внешних ключей
Cake\ORM\Table $target
связанная таблица
массив $conditions необязательно []
Условие, которое определяет, какие объекты необходимо разорвать
массив $options необязательно []
список опций, принимаемых Table::delete()

Возвращает

boolean
успех

_unlinkAssociated()source protected

_unlinkAssociated( array $foreignKeyReference , Cake\Datasource\EntityInterface $entity , Cake\ORM\Table $target , array $remainingEntities = [] , array $options = [] )

Удаляет/устанавливает null связанные объекты в соответствии с зависимостью между исходными и целевыми объектами и возможностью наличия внешних ключей в нулевом значении. Пропускает удаление записей, присутствующих в $remainingEntities

Параметры

массив $foreignKeyReference

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

Cake\Datasource\EntityInterface $entity
сущность, которая должна иметь свои связанные сущности без привязки
Cake\ORM\Table $entity
связанная таблица
массив $remainingEntities необязательно []
Сущности, которые не должны быть удалены
массив $options необязательно []
список опций, принимаемых Table::delete()

Возвращает

boolean
успех

canBeJoined()source public

canBeJoined( array $options = [] )

Можно ли выразить эту связь напрямую в объединении запроса

Параметры

массив $options необязательно []
настраиваемый ключ опций, который может изменить возвращаемое значение

Возвращает

boolean

если ключ 'matching' в $option имеет значение true, то эта функция вернёт true, в противном случае — false


Переопределяет

Cake\ORM\Association::canBeJoined()

cascadeDelete()source public

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

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

Параметры

Cake\Datasource\EntityInterface $entity
Сущность, которая инициировала каскадное удаление.
массив $options необязательно []
Опции для исходного удаления.

Возвращает

boolean
Успех

defaultRowValue()source public

defaultRowValue( array $row , boolean $joined )

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

Параметры

массив $row
Строка, для которой нужно установить значение по умолчанию.
boolean $joined

Является ли строка результатом непосредственного объединения с этой связью

Возвращает

массив

Переопределяет

Cake\ORM\Association::defaultRowValue()

eagerLoader()source public

eagerLoader( array $options )

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

Параметры

массив $options
Опции для ленивой загрузки.

Возвращает

Замыкание

getForeignKey()source public

getForeignKey( )

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

Возвращает

строка

Переопределяет

Cake\ORM\Association::getForeignKey()

getSaveStrategy()source public

getSaveStrategy( )

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

Возвращает

строка
стратегия, которая должна использоваться для сохранения

getSort()source public

getSort( )

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

Возвращает

смешанный

isOwningSide()source public

isOwningSide( Cake\ORM\Table $side )

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

Параметры

Cake\ORM\Table $side
Возможная таблица с владением

Возвращает

boolean

link()source public

link( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options = [] )

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

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

Пример:

$user = $users->get(1);
$allArticles = $articles->find('all')->toArray();
$users->Articles->link($user, $allArticles);

$user->get('articles') будет содержать все статьи из $allArticles после связывания

Параметры

Cake\Datasource\EntityInterface $sourceEntity

строка, принадлежащая стороне source этой связи

массив $targetEntities

список сущностей, принадлежащих стороне target этой связи

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

Возвращает

boolean
true при успехе, false в противном случае

replace()source public

replace( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options = [] )

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

Например, если у автора есть много статей, таких как 'article1', 'article 2' и 'article 3', и вы передаёте в этот метод массив, содержащий сущности для статей 'article 1' и 'article 4', только ссылка для 'article 1' будет сохранена в базе данных, ссылки для 'article 2' и 'article 3' будут удалены, а ссылка для 'article 4' будет создана.

Существующие связи не удаляются и не создаются заново, они либо остаются без изменений, либо обновляются.

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

При успехе переданный $sourceEntity будет содержать $targetEntities в качестве значения в соответствующем свойстве для этой связи.

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

Пример:

$author->articles = [$article1, $article2, $article3, $article4];
$authors->save($author);
$articles = [$article1, $article3];
$authors->getAssociation('articles')->replace($author, $articles);

$author->get('articles') будет содержать только [$article1, $article3] в конце

Параметры

Cake\Datasource\EntityInterface $sourceEntity

сущность, сохранённая в исходной таблице для этой связи

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

список опций, которые будут переданы в внутренние вызовы save/delete при сохранении/обновлении новых связей или удалении существующих

Возвращает

boolean
успех

Вызывает

InvalidArgumentException

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


saveAssociated()source public

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

Берет сущность из исходной таблицы и проверяет, есть ли поле, соответствующее имени свойства для этой ассоциации. Найденная сущность будет сохранена в целевой таблице для этой ассоциации, передав предоставленные $options

Параметры

Cake\Datasource\EntityInterface $entity
сущность из исходной таблицы
массив $options необязательно []
параметры, которые будут переданы методу сохранения в целевой таблице

Возвращает

boolean|Cake\Datasource\EntityInterface

false, если $entity не удалось сохранить, в противном случае возвращает сохранённую сущность


Возбуждает

InvalidArgumentException
если данные ассоциации невозможно пройти.

См. также

\Cake\ORM\Table::save()

saveStrategy()source public устарело

saveStrategy( string|null $strategy = null )

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

Устарело

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

Параметры

строка|null $strategy необязательно null
имя стратегии, которое нужно использовать

Возвращает

строка
стратегия, которая должна использоваться для сохранения

Возбуждает

InvalidArgumentException
если передано недопустимое имя стратегии

setSaveStrategy()source public

setSaveStrategy( string $strategy )

Устанавливает стратегию, которая должна использоваться для сохранения.

Параметры

строка $strategy
имя стратегии, которое нужно использовать

Возвращает


$this

Возбуждает

InvalidArgumentException
если передано недопустимое имя стратегии

setSort()source public

setSort( mixed $sort )

Устанавливает порядок сортировки, в котором должны возвращаться целевые записи.

Параметры

смешанный $sort
оператор порядка, совместимый с find()

Возвращает


$this

sort()source public устарело

sort( mixed $sort = null )

Устанавливает порядок сортировки, в котором должны возвращаться целевые записи. Если не переданы аргументы, возвращается текущее значение

Устарело

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

Параметры

смешанный $sort необязательно null
оператор порядка, совместимый с find()

Возвращает

смешанный

type()source public

type( )

Получить тип отношения.

Возвращает

строка

unlink()source public

unlink( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options = [] )

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

Параметры

В дополнение к стандартным параметрам, принимаемым Table::delete(), поддерживаются следующие ключи:

  • cleanProperty: Удалить ли все объекты в $targetEntities хранящиеся в $sourceEntity (по умолчанию: true)

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

Изменения сохраняются в базе данных и в исходной сущности.

Пример:

$user = $users->get(1);
$user->articles = [$article1, $article2, $article3, $article4];
$users->save($user, ['Associated' => ['Articles']]);
$allArticles = [$article1, $article2, $article3];
$users->Articles->unlink($user, $allArticles);

$article->get('articles') будет содержать только [$article4] после удаления в базе данных

Параметры

Cake\Datasource\EntityInterface $sourceEntity

сохранённая в базе данных сущность из исходной таблицы для этой ассоциации

массив $targetEntities

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

массив $options необязательно []
список параметров, которые будут переданы внутреннему delete вызову

Возбуждает

InvalidArgumentException

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


Наследуемые методы из Cake\ORM\Association

__call()source public

__call( string $method , array $argument )

Делегирует вызовы методов целевой таблице.

Параметры

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

Возвращает

смешанный

Возбуждает

BadMethodCallException

__construct()source public

__construct( string $alias , array $options = [] )

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

Параметры

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

__get()source public

__get( string $property )

Делегирует получение свойства целевой таблице. Это удобно для получения ассоциаций этой ассоциации

Параметры

строка $property
имя свойства

Возвращает

Cake\ORM\Association

Возбуждает

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

__isset()source public

__isset( string $property )

Делегирует вызов isset целевой таблице. Это удобно для проверки, содержит ли целевая таблица другую ассоциацию с заданным именем

Параметры

строка $property
имя свойства

Возвращает

boolean
true, если свойство существует

_appendFields()source protected

_appendFields( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )

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

Параметры

Cake\ORM\Query $query
запрос, к которому будут добавлены поля
Cake\ORM\Query $surrogate
запрос, содержащий поля, которые нужно скопировать
массив $options
опции, переданные методу attachTo

_appendNotMatching()source protected

_appendNotMatching( Cake\Datasource\QueryInterface $query , array $options )

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

Параметры

Cake\Datasource\QueryInterface $query
Запрос для изменения
массив $options
Массив параметров, содержащий ключ negateMatch.

_bindNewAssociations()source protected

_bindNewAssociations( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )

Применяет все прикрепляемые ассоциации к $query из содержаний, найденных в $surrogate запросе.

Копирует все содержащиеся ассоциации из запроса $surrogate в переданный $query. Содержимое изменяется так, чтобы оно соответствовало цепочке ассоциаций, из которой оно произошло.

Параметры

Cake\ORM\Query $query
запрос, к которому будут прикреплены ассоциации
Cake\ORM\Query $surrogate
запрос, содержащий содержимое, которое нужно прикрепить
массив $options
параметры, передаваемые методу attachTo

_dispatchBeforeFind()source protected

_dispatchBeforeFind( Cake\ORM\Query $query )

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

Параметры

Cake\ORM\Query $query
запрос, к которому присоединяется эта ассоциация

_extractFinder()source protected

_extractFinder( string|array $finderData )

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

Возвращает выведенные параметры из поиска $type.

Примеры:

Следующее вызовет поиск 'translations' со значением поиска в качестве его параметров: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);

Параметры

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

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

Возвращает

массив

_formatAssociationResults()source protected

_formatAssociationResults( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )

Добавляет функцию форматирования к переданному $query если $surrogate запрос объявляет другую функцию форматирования. Поскольку $surrogate запрос соответствует связанной целевой таблице, результирующая функция форматирования будет результатом применения функций форматирования к свойству, соответствующему данной таблице.

Параметры

Cake\ORM\Query $query
запрос, к которому будет применена функция форматирования
Cake\ORM\Query $surrogate

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

массив $options
параметры, переданные методу attachTo

_getClassName()source protected

_getClassName( string $alias , array $options = [] )

Получает имя класса таблицы.

Параметры

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

Возвращает

строка

_joinCondition()source protected

_joinCondition( array $options )

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

Параметры

массив $options
список параметров, переданных методу attachTo

Возвращает

массив

Исключения

RuntimeException

если количество столбцов в foreignKey не совпадает с количеством столбцов в primaryKey исходной таблицы


_propertyName()source protected

_propertyName( )

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

Возвращает

строка

attachTo()source public

attachTo( Cake\ORM\Query $query , array $options = [] )

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

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

  • includeFields: Включать ли поля целевой модели в результат
  • foreignKey: Имя поля, используемого в качестве внешнего ключа, если false — не используется
  • conditions: массив с условиями фильтрации соединения, он будет объединен с любыми условиями, изначально настроенными для этой ассоциации
  • fields: список полей в целевой таблице для включения в результат
  • type: Тип соединения (например, INNER) для записей, найденных в этой ассоциации
  • aliasPath: Строка, разделенная точками, представляющая путь имен ассоциаций, следующих от основной таблицы переданного запроса до этой ассоциации.
  • propertyPath: Строка, разделенная точками, представляющая путь свойств ассоциаций, следующих от основной сущности переданного запроса до этой ассоциации
  • joinType: Тип SQL-соединения, используемого в запросе.
  • negateMatch: Добавит условие в переданный запрос для исключения соответствий с этой ассоциацией.

Параметры

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

Исключения

RuntimeException

если переданный билдер запроса не возвращает объект запроса


bindingKey()source public устаревшее

bindingKey( string|null $key = null )

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

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

Устаревшее

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

Параметры

строка|null $key необязательно null
поле таблицы, используемое для связи обеих таблиц

Возвращает

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

cascadeCallbacks()source public устаревшее

cascadeCallbacks( boolean|null $cascadeCallbacks = null )

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

Устаревшее

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

Параметры

булево|null $cascadeCallbacks необязательно null
значение переключателя каскадных обратных вызовов

Возвращает

булево

className()source public устаревшее

className( )

Имя класса объекта целевой таблицы

Устаревшее

3.7.0 Используйте getClassName() вместо этого.

Возвращает

строка

conditions()source public устаревшее

conditions( array|null $conditions = null )

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

Устаревшее

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

Параметры

массив|null $conditions необязательно null
список условий

Возвращает

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

См. также

\Cake\Database\Query::where() для примеров формата массива

deleteAll()source public

deleteAll( mixed $conditions )

Делегирует операцию удаления методу deleteAll целевой таблицы.

Параметры

смешанный $conditions

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

Возвращает

целое число
Возвращает количество затронутых строк.

См. также

\Cake\ORM\Table::deleteAll()

dependent()source public устаревшее

dependent( boolean|null $dependent = null )

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

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

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

Устаревшее

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

Параметры

булево|null $dependent необязательно null
Установите режим зависимости. Используйте null, чтобы прочитать текущее состояние.

Возвращает

булево

exists()source public

exists( array|callable|Cake\Database\ExpressionInterface $conditions )

Делегирует операцию целевой таблице exists после добавления стандартных условий для этой ассоциации.

Параметры

массив|вызываемый объект|Cake\Database\ExpressionInterface $conditions

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

Возвращает

булево

См. также

\Cake\ORM\Table::exists()
END_OF_DOCUMENT_MARKER

find()source public

find( string|array|null $type = null , array $options = [] )

Делегирует операцию поиска методу find целевой таблицы и соответствующим образом изменяет запрос на основе конфигурации этого ассоциации.

Параметры

строка|массив|null $type необязательно null

тип запроса для выполнения, если передаётся массив, он интерпретируется как параметр $options.

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

Возвращает

Cake\ORM\Query

См. также

\Cake\ORM\Table::find()

finder()source public устарело

finder( string|null $finder = null )

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

Устарело

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

Параметры

строка|null $finder необязательно null
имя используемого поиска

Возвращает

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

foreignKey()source public устарело

foreignKey( string|null $key = null )

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

Устарело

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

Параметры

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

Возвращает

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

getBindingKey()source public

getBindingKey( )

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

Возвращает

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

getCascadeCallbacks()source public

getCascadeCallbacks( )

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

Возвращает

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

getClassName()source public

getClassName( )

Получает имя класса объекта целевой таблицы.

Возвращает

строка

getConditions()source public

getConditions( )

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

Возвращает

массив|вызов функции

См. также

\Cake\Database\Query::where() для примеров формата массива

getDependent()source public

getDependent( )

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

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

Возвращает

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

getFinder()source public

getFinder( )

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

Возвращает

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

getJoinType()source public

getJoinType( )

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

Возвращает

строка

getName()source public

getName( )

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

Возвращает

строка

getProperty()source public

getProperty( )

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

Возвращает

строка

getSource()source public

getSource( )

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

Возвращает

Cake\ORM\Table

getStrategy()source public

getStrategy( )

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

Возвращает

строка

getTarget()source public

getTarget( )

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

Возвращает

Cake\ORM\Table

joinType()source public устарело

joinType( string|null $type = null )

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

Устарело

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

Параметры

строка|null $type необязательно null
тип соединения (например, INNER)

Возвращает

строка

name()source public устарело

name( string|null $name = null )

Устанавливает имя этой ассоциации.

Устарело

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

Параметры

строка|null $name необязательно null
Назначаемое имя

Возвращает

строка

property()source public устарело

property( string|null $name = null )

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

Устарело

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

Параметры

строка|null $name необязательно null
имя свойства ассоциации. Используйте null для чтения текущего значения.

Возвращает

строка

requiresKeys()source public

requiresKeys( array $options = [] )

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

Параметры

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

Возвращает

логическое значение
true, если список ключей потребуется

setBindingKey()source public

setBindingKey( string|array $key )

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

Параметры

строка|массив $key
поле таблицы или поля, которые будут использоваться для связи обеих таблиц

Возвращает


$this

setCascadeCallbacks()source public

setCascadeCallbacks( boolean $cascadeCallbacks )

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

Параметры

boolean $cascadeCallbacks
Значение для переключения обратных вызовов каскадного удаления

Возвращает


$this

setClassName()source public

setClassName( string $className )

Устанавливает имя класса объекта целевой таблицы.

Параметры

string $className
Имя класса для установки.

Возвращает


$this

Исключения

InvalidArgumentException

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


setConditions()source public

setConditions( array|callable $conditions )

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

Параметры

array|callable $conditions
Список условий для использования

Возвращает


$this

См. также

\Cake\Database\Query::where() для примеров формата массива

setDependent()source public

setDependent( boolean $dependent )

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

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

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

Параметры

boolean $dependent
Установить зависимый режим. Используйте null для чтения текущего состояния.

Возвращает


$this

setFinder()source public

setFinder( string|array $finder )

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

Параметры

string|array $finder
имя используемого поиска или массив из имени поиска и опций.

Возвращает


$this

setForeignKey()source public

setForeignKey( string|array $key )

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

Параметры

string|array $key
ключ или ключи, используемые для связывания обеих таблиц

Возвращает


$this

setJoinType()source public

setJoinType( string $type )

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

Параметры

string $type
тип объединения (например, INNER)

Возвращает


$this

setName()source public

setName( string $name )

Устанавливает имя для этой ассоциации, обычно псевдоним, назначенный целевой связанной таблице

Параметры

string $name
Назначаемое имя

Возвращает


$this

setProperty()source public

setProperty( string $name )

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

Параметры

string $name
Имя свойства ассоциации. Используйте null для чтения текущего значения.

Возвращает


$this

setSource()source public

setSource( Cake\ORM\Table $table )

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

Параметры

Cake\ORM\Table $table
экземпляр, который будет назначен стороной источника

Возвращает


$this

setStrategy()source public

setStrategy( string $name )

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

Параметры

string $name
Тип стратегии. Используйте null для чтения текущего значения.

Возвращает


$this

Исключения

InvalidArgumentException
При предоставлении неверной стратегии.

setTarget()source public

setTarget( Cake\ORM\Table $table )

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

Параметры

Cake\ORM\Table $table
экземпляр, который будет назначен стороной назначения

Возвращает


$this

source()source public deprecated

source( Cake\ORM\Table $table = null )

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

Устарело

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

Параметры

Cake\ORM\Table $table необязательно null
экземпляр, который будет назначен стороной источника

Возвращает

Cake\ORM\Table

strategy()source public deprecated

strategy( string|null $name = null )

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

Устарело

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

Параметры

string|null $name необязательно null
Тип стратегии. Используйте null для чтения текущего значения.

Возвращает

string

Исключения

InvalidArgumentException
При предоставлении неверной стратегии.

target()source public deprecated

target( Cake\ORM\Table $table = null )

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

Устарело

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

Параметры

Cake\ORM\Table $table необязательно null
экземпляр, который будет назначен стороной назначения

Возвращает

Cake\ORM\Table

transformRow()source public

transformRow( array $row , string $nestKey , boolean $joined , string|null $targetProperty = null )

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

Параметры

array $row
Строка для преобразования
string $nestKey

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

boolean $joined

Является ли строка результатом прямого объединения с этой ассоциацией

string|null $targetProperty необязательно null

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

Возвращает

array

updateAll()source public

updateAll( array $fields , mixed $conditions )

Делегирует операцию обновления методу updateAll целевой таблицы.

Параметры

array $fields
Хэш поля => новое значение.
mixed $conditions

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

Возвращает

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

См. также

\Cake\ORM\Table::updateAll()

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

_camelize()source protected

_camelize( string $name )

Создаёт камелизарованную версию $name

Параметры

строка $name
имя

Возвращает

строка
Камелизарованное имя

_entityName()source protected

_entityName( string $name )

Создаёт правильное имя сущности (единственное число) для указанного имени

Параметры

строка $name
Имя

Возвращает

строка
Камелизарованное и множественное имя модели

_fixtureName()source protected

_fixtureName( string $name )

Создаёт имя фикстуры

Параметры

строка $name
Имя класса модели

Возвращает

строка
Единственное число ключа модели

_modelKey()source protected

_modelKey( string $name )

Создаёт правильный ключи модели с нижним подчеркиванием для ассоциаций

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

Параметры

строка $name
Имя класса модели

Возвращает

строка
Единственное число ключа модели

_modelNameFromKey()source protected

_modelNameFromKey( string $key )

Создаёт правильное имя модели из внешнего ключа

Параметры

строка $key
Внешний ключ

Возвращает

строка
Имя модели

_pluginNamespace()source protected

_pluginNamespace( string $pluginName )

Возвращает имя пространства имён плагина

Параметры

строка $pluginName
Имя плагина

Возвращает

строка
Пространство имён плагина

_pluginPath()source protected

_pluginPath( string $pluginName )

Находит правильный путь для плагина. Просматривает $pluginPaths для нужного плагина.

Параметры

строка $pluginName
Имя плагина, например DebugKit

Возвращает

строка
Путь к нужному плагину.

_pluralHumanName()source protected

_pluralHumanName( string $name )

Создаёт множественное человекочитаемое имя, используемое в представлениях

Параметры

строка $name
Имя контроллера

Возвращает

строка
Множественное человекочитаемое имя

_singularHumanName()source protected

_singularHumanName( string $name )

Создаёт единственное человекочитаемое имя, используемое в представлениях

Параметры

строка $name
Имя контроллера

Возвращает

строка
Единственное человекочитаемое имя

_singularName()source protected

_singularName( string $name )

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

Параметры

строка $name
Используемое имя

Возвращает

строка
Имя переменной

_variableName()source protected

_variableName( string $name )

Создаёт множественное имя переменной для представлений

Параметры

строка $name
Используемое имя

Возвращает

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

Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait

getTableLocator()source public

getTableLocator( )

Получает локатор таблицы.

Возвращает

Cake\ORM\Locator\LocatorInterface

setTableLocator()source public

setTableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator )

Устанавливает локатор таблицы.

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator
Экземпляр LocatorInterface.

Возвращает


$this

tableLocator()source public deprecated

tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator = null )

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

Устаревшее

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

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator необязательно null
Экземпляр LocatorInterface.

Возвращает

Cake\ORM\Locator\LocatorInterface

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

$_joinTypesource

protected строка

Тип соединения, используемый при добавлении ассоциации в запрос

Cake\ORM\Association\QueryInterface::JOIN_TYPE_INNER

$_saveStrategysource

protected строка

Стратегия сохранения, используемая данной ассоциацией

self::SAVE_APPEND

$_sortsource

protected смешанный тип

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

$_strategysource

protected строка

Имя стратегии, используемой для извлечения связанных записей.

self::STRATEGY_SELECT

$_validStrategiessource

protected массив

Допустимые стратегии для данного типа ассоциации

[
    self::STRATEGY_SELECT,
    self::STRATEGY_SUBQUERY
]

© 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.Association.HasMany.html

Spec-Zone.ru

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