Spec-Zone.ru › CakePHP 3.1

Класс BelongsToMany

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

Пример отношения BelongsToMany: Статья принадлежит многим тегам.

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

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

_appendJunctionJoinисходный код защищённый

_appendJunctionJoin( Cake\ORM\Query $query , string|array $conditions )

Добавление соединения к соединительной таблице.

Параметры

Cake\ORM\Query $query
Запрос для добавления.
string|array $conditions
Условие запроса для использования.

Возвращает

Cake\ORM\Query
Изменённый запрос.

_appendNotMatchingисходный код защищённый

_appendNotMatching( Cake\Database\Query $query , array $options )

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

Параметры

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

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

Cake\ORM\Association::_appendNotMatching()

_buildQueryисходный код защищённый

_buildQuery( array $options )

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

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

Параметры

array $options
опции, принимаемые eagerLoader()

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

Выбрасывает

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

_buildResultMapисходный код защищённый

_buildResultMap( Cake\ORM\Query $fetchQuery , array $options )

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

Параметры

Cake\ORM\Query $fetchQuery
Запрос для получения результатов
array $options
Опции, переданные в eager loader

Возвращает

array
массив

Выбрасывает

RuntimeException
если свойство ассоциации не является частью набора результатов.

_checkPersistenceStatusисходный код защищённый

_checkPersistenceStatus( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities )

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

Параметры

Cake\Datasource\EntityInterface $sourceEntity
строка, относящаяся к стороне source этой ассоциации
array $targetEntities
список сущностей, относящихся к стороне target этой ассоциации

Возвращает

boolean
bool

Выбрасывает

InvalidArgumentException
\InvalidArgumentException

_collectJointEntitiesисходный код защищённый

_collectJointEntities( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities )

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

Параметры

Cake\Datasource\EntityInterface $sourceEntity
Строка, относящаяся к исходной стороне этого отношения.
array $targetEntities
Строки, относящиеся к целевой стороне этого отношения.

Возвращает

array
массив

Выбрасывает

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

_diffLinksисходный код защищённый

_diffLinks( Cake\ORM\Query $existing , array $jointEntities , array $targetEntities , array $options [] )

Вспомогательный метод, используемый для удаления разницы между ссылками, переданными в $existing и $jointEntities. Этот метод вернёт значения из $targetEntities, которые не были удалены при вычислении разницы.

Параметры

Cake\ORM\Query $existing
запрос для получения существующих ссылок
array $jointEntities
сущности ссылок, которые должны быть сохранены
array $targetEntities
сущности в целевой таблице, связанные с $jointEntities
array $options опционально []
список опций, принимаемых Table::delete()

Возвращает

array
массив

_generateJunctionAssociationsисходный код защищённый

_generateJunctionAssociations( Cake\ORM\Table $junction , Cake\ORM\Table $source , Cake\ORM\Table $target )

Генерирует ассоциации в таблице соединения, при необходимости

Генерирует следующие ассоциации:

  • соединение belongsTo исходная таблица, например, ArticlesTags belongsTo Tags
  • соединение belongsTo целевая таблица, например, ArticlesTags belongsTo Articles

Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.

Параметры

Cake\ORM\Table $junction
Таблица соединения.
Cake\ORM\Table $source
Исходная таблица.
Cake\ORM\Table $target
Целевая таблица.

_generateSourceAssociationsисходный код защищённый

_generateSourceAssociations( Cake\ORM\Table $junction , Cake\ORM\Table $source )

Генерирует дополнительные ассоциации исходной таблицы при необходимости.

Генерирует следующие ассоциации:

  • исходная таблица hasMany таблица соединения, например, Tags hasMany ArticlesTags

Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.

Параметры

Cake\ORM\Table $junction
Таблица соединения.
Cake\ORM\Table $source
Исходная таблица.

_generateTargetAssociationsисходный код защищённый

_generateTargetAssociations( Cake\ORM\Table $junction , Cake\ORM\Table $source , Cake\ORM\Table $target )

Генерирует взаимные ассоциации при необходимости.

Генерирует следующие ассоциации:

  • целевая таблица hasMany таблица соединения, например, Articles hasMany ArticlesTags
  • целевая таблица belongsToMany исходная таблица, например, Articles belongsToMany Tags.

Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.

Параметры

Cake\ORM\Table $junction
Таблица соединения.
Cake\ORM\Table $source
Исходная таблица.
Cake\ORM\Table $target
Целевая таблица.

_joinConditionисходный код защищённый

_joinCondition( array $options )

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

Параметры

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

Возвращает

boolean
false

Выбрасывает

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

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

Cake\ORM\Association::_joinCondition()

_junctionAssociationNameисходный код защищённый

_junctionAssociationName( )

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

Возвращает

string
строка
END_OF_DOCUMENT_MARKER

_junctionTableNamesource protected

_junctionTableName( string|null $name null )

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

Параметры

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

Возвращает

string
строка

_linkFieldsource protected

_linkField( array $options )

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

Параметры

array $options
опции для получения поля связи.

Возвращает

string
строка

_optionssource protected

_options( array $opts )

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

Параметры

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

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

Cake\ORM\Association::_options()

_saveLinkssource protected

_saveLinks( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options )

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

Параметры

Cake\Datasource\EntityInterface $sourceEntity
сущность из таблицы источника в этой связи
array $targetEntities
список сущностей, которые нужно связать с сущностью источника, используя таблицу соединения
array $options
список опций, принимаемых Table::save()

Возвращает

boolean
успех

_saveTargetsource protected

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

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

Параметры

Cake\Datasource\EntityInterface $parentEntity
сущность источника, содержащая целевые сущности, которые нужно сохранить.
array|Traversable $entities
список сущностей для сохранения в целевой таблице и создания связи с родительской сущностью
array $options
список опций, принимаемых Table::save()

Возвращает

Cake\Datasource\EntityInterface|boolean
Родительская сущность после создания всех связей, если ошибок не произошло, в противном случае false

Выбрасывает

InvalidArgumentException
если свойство, представляющее связь в родительской сущности, нельзя пройти

attachTosource public

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

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

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

  • includeFields: Включать ли поля целевой модели в результат
  • foreignKey: Имя поля, используемого в качестве внешнего ключа, если false, не будет использоваться
  • conditions: Массив с условиями для фильтрации объединения
  • fields: Список полей в целевой таблице для включения в результат
  • type: Тип объединения (например, INNER)

Параметры

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

Выбрасывает

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

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

Cake\ORM\Association::attachTo()

cascadeDeletesource public

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

Очищает данные в таблице соединения для данной сущности.

Параметры

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

Возвращает

boolean
Успех.

conditionssource public

conditions( array|null $conditions null )

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

Параметры

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

Возвращает

array
массив

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

Cake\ORM\Association::conditions()

findsource public

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

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

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

Параметры

string|array $type необязательно null
тип запроса, если передан массив, он будет интерпретирован как параметр $options
array $options необязательно []
Опции для поиска

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

См.

Cake\ORM\Table::find()

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

Cake\ORM\Association::find()

isOwningSidesource public

isOwningSide( Cake\ORM\Table $side )

Возвращает boolean true, так как обе таблицы «владеют» строками на другой стороне связи через таблицу соединения.

Параметры

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

Возвращает

boolean
bool

junctionsource public

junction( string|Cake\ORM\Table|null $table null )

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

Параметры

string|Cake\ORM\Table|null $table необязательно null
Имя или экземпляр таблицы соединения

Возвращает

Cake\ORM\Table
\Cake\ORM\Table

junctionConditionssource protected

junctionConditions( )

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

Возвращает

array
массив

linksource public

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

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

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

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

Пример:

$newTags = $tags->find('relevant')->execute();
$articles->association('tags')->link($article, $newTags);

$article->get('tags') будет содержать все теги в $newTags после связывания

Параметры

Cake\Datasource\EntityInterface $sourceEntity
строка, принадлежащая стороне source этой связи
array $targetEntities
список сущностей, принадлежащих стороне target этой связи
array $options необязательно []
список опций, которые будут переданы внутреннему вызову save

Возвращает

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

Выбрасывает

InvalidArgumentException
если любое из значений в $targetEntities не выявлено как уже сохранённое

replaceLinkssource public

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

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

Например, если статья связана с тегами 'cake' и 'framework', и вы передаёте в этот метод массив, содержащий сущности для тегов 'cake', 'php' и 'awesome', только связь для 'cake' будет сохранена в базе данных, связь для 'framework' будет удалена, а связи для 'php' и 'awesome' будут созданы.

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

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

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

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

Пример:

$article->tags = [$tag1, $tag2, $tag3, $tag4];
$articles->save($article);
$tags = [$tag1, $tag3];
$articles->association('tags')->replaceLinks($article, $tags);

$article->get('tags') в конечном итоге будет содержать только [$tag1, $tag3].

Параметры

Cake\Datasource\EntityInterface $sourceEntity
сущность, сохранённая в таблице источника для этой ассоциации
массив $targetEntities
список сущностей из целевой таблицы, которые необходимо связать
массив $options необязательно []
список параметров, которые необходимо передать внутренним вызовам save/delete при сохранении/обновлении новых связей или удалении существующих

Возвращает

boolean
успех

Выбрасывает

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

saveAssociatedsource public

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

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

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

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

Параметры

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

Возвращает

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

Выбрасывает

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

См.

Table::save()
Cake\ORM\Association\BelongsToMany::replaceLinks()

saveStrategysource public

saveStrategy( string|null $strategy null )

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

Параметры

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

Возвращает

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

Выбрасывает

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

targetConditionssource protected

targetConditions( )

Возвращает отфильтрованные условия, ссылающиеся на целевую таблицу.

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

Возвращает

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

targetForeignKeysource public

targetForeignKey( string|null $key null )

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

Параметры

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

Возвращает

string
строка

transformRowsource public

transformRow( array $row , string $nestKey , boolean $joined )

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

Параметры

массив $row
строка для преобразования
строка $nestKey
ключ массива, под которым должны быть найдены результаты для этой ассоциации
булево $joined
является ли строка результатом прямого объединения с этой ассоциацией

Возвращает

array
массив

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

Cake\ORM\Association::transformRow()

typesource public

type( )

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

Возвращает

string
строка

unlinksource public

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

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

Параметры

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

  • cleanProperty: Удалять или нет все объекты в $targetEntities которые

хранятся в $sourceEntity (по умолчанию: true)

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

Пример:

$article->tags = [$tag1, $tag2, $tag3, $tag4];
$tags = [$tag1, $tag2, $tag3];
$articles->association('tags')->unlink($article, $tags);

$article->get('tags') в конечном итоге будет содержать только [$tag4] после удаления из базы данных.

Параметры

Cake\Datasource\EntityInterface $sourceEntity
сущность, сохранённая в таблице источника для этой ассоциации
массив $targetEntities
список сущностей, сохранённых в целевой таблице для этой ассоциации
массив|булево $options необязательно []
список параметров, которые нужно передать в вызов delete, или булево значение boolean

Выбрасывает

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

Методы, унаследованные от Cake\ORM\Association

__callsource public

__call( string $method , array $argument )

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

Параметры

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

Возвращает

mixed
смешанное значение

Выбрасывает

BadMethodCallException
\BadMethodCallException

__constructsource public

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

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

Параметры

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

__getsource public

__get( string $property )

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

Параметры

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

Возвращает

Cake\ORM\Association
Cake\ORM\Association

Возбуждает

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

__issetsource public

__isset( string $property )

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

Параметры

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

Возвращает

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

_appendFieldssource protected

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

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

Параметры

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

_bindNewAssociationssource 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

_dispatchBeforeFindsource protected

_dispatchBeforeFind( Cake\ORM\Query $query )

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

Параметры

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

_extractFindersource 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
Имя нахождения или массив, имеющий имя в качестве ключа и параметры в качестве значения.

Возвращает

array
массив

_formatAssociationResultssource 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

bindingKeysource public

bindingKey( string|null $key null )

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

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

Параметры

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

Возвращает

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

canBeJoinedsource public

canBeJoined( array $options [] )

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

Параметры

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

Возвращает

boolean
bool

cascadeCallbackssource public

cascadeCallbacks( boolean|null $cascadeCallbacks null )

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

Параметры

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

Возвращает

boolean
bool

defaultRowValuesource public

defaultRowValue( array $row , boolean $joined )

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

Параметры

массив $row
строка, для которой нужно установить значение по умолчанию.
булево $joined
Является ли строка результатом прямого присоединения к этой ассоциации

Возвращает

array
массив

deleteAllsource public

deleteAll( mixed $conditions )

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

Параметры

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

Возвращает

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

См.

Cake\ORM\Table::deleteAll()

dependentsource public

dependent( boolean|null $dependent null )

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

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

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

Параметры

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

Возвращает

boolean
bool
END_OF_DOCUMENT_MARKER

eagerLoadersource abstract public

eagerLoader( array $options )

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

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

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

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

  • query: Объект Query, настроенный для поиска записей исходной таблицы
  • keys: Список значений первичного ключа из исходной таблицы
  • foreignKey: Название поля, используемого для связи обеих таблиц
  • conditions: Список условий, которые должны быть переданы методу where() запроса
  • sort: Направление, в котором должны возвращаться записи
  • fields: Список полей для выбора из целевой таблицы
  • contain: Список связанных таблиц для загрузки по ассоциации с целевой таблицей
  • strategy: Название стратегии, которую нужно использовать для поиска записей целевой таблицы
  • nestKey: Ключ массива, под которым будут найдены результаты при преобразовании строки

Параметры

массив $options
Параметры для загрузки по ассоциации.

Возвращает

Closure
\Closure

findersource public

finder( string|null $finder null )

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

Параметры

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

Возвращает

string
строка

foreignKeysource public

foreignKey( string|null $key null )

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

Параметры

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

Возвращает

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

joinTypesource public

joinType( string $type null )

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

Параметры

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

Возвращает

string
строка

namesource public

name( string|null $name null )

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

Параметры

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

Возвращает

string
строка

propertysource public

property( string|null $name null )

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

Параметры

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

Возвращает

string
строка

sourcesource public

source( Cake\ORM\Table $table null )

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

Параметры

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

Возвращает

Cake\ORM\Table
\Cake\ORM\Table

strategysource public

strategy( string|null $name null )

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

Параметры

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

Возвращает

string
строка

Исключения

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

targetsource public

target( Cake\ORM\Table $table null )

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

Параметры

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

Возвращает

Cake\ORM\Table
\Cake\ORM\Table

updateAllsource public

updateAll( array $fields , mixed $conditions )

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

Параметры

массив $fields
Хэш поле => новое значение.
смешанное $conditions
Условия, используемые, допускает всё, что принимает Query::where().

Возвращает

boolean
Успешно Возвращает true, если затронуто одна или более строк.

См. также

Cake\ORM\Table::updateAll()

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

_defaultOptionssource protected

_defaultOptions( )

Возвращает значения параметров по умолчанию для eagerLoader

Возвращает

array
массив

_externalOptionssource protected

_externalOptions( array $opts )

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

Параметры

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

canBeJoinedsource public

canBeJoined( array $options [] )

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

Параметры

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

Возвращает

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

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

Cake\ORM\Association::canBeJoined()

defaultRowValuesource public

defaultRowValue( mixed $row , mixed $joined )

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

Cake\ORM\Association::defaultRowValue()

foreignKeysource public

foreignKey( string|null $key null )

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

Параметры

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

Возвращает

string
строка

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

Cake\ORM\Association::foreignKey()

sortsource public

sort( mixed $sort null )

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

Параметры

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

Возвращает

mixed
mixed

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

_addFilteringConditionsource protected

_addFilteringCondition( Cake\ORM\Query $query , string|array $key , mixed $filter )

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

Параметры

Cake\ORM\Query $query
Запрос целевой таблицы
string|array $key
Поля, которые должны использоваться для фильтрации
mixed $filter
Значение, которое должно использоваться для соответствия ключу $key

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

_addFilteringJoinsource public

_addFilteringJoin( Cake\ORM\Query $query , string $key , Cake\ORM\Query $subquery )

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

Параметры

Cake\ORM\Query $query
Запрос целевой таблицы
string $key
Поля, которые должны использоваться для фильтрации
Cake\ORM\Query $subquery
Подзапрос, который нужно использовать для фильтрации

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

_buildBaseQuerysource protected

_buildBaseQuery( array $options )

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

Параметры

array $options
Параметры, принимаемые eagerLoader()

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

Выбрасывает

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

_buildSubquerysource protected

_buildSubquery( Cake\ORM\Query $query )

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

Параметры

Cake\ORM\Query $query
исходный запрос, используемый для загрузки исходных записей

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

_createTupleConditionsource protected

_createTupleCondition( Cake\ORM\Query $query , array $keys , mixed $filter , string $operator )

Возвращает объект TupleComparison, который можно использовать для сопоставления всех полей из $keys со значениями кортежей в $filter с использованием предоставленного оператора.

Параметры

Cake\ORM\Query $query
Запрос целевой таблицы
array $keys
Поля, которые должны использоваться для фильтрации
mixed $filter
Значение, которое должно использоваться для соответствия ключу $key
string $operator
Оператор для сравнения кортежей

Возвращает

Cake\Database\Expression\TupleComparison
\Cake\Database\Expression\TupleComparison

_multiKeysInjectorsource protected

_multiKeysInjector( array $resultMap , array $sourceKeys , string $nestKey )

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

Параметры

array $resultMap
Массив со значениями, содержащий целевую таблицу
array $sourceKeys
Массив с алиасами ключей для сопоставления
string $nestKey
Ключ, под которым результаты должны быть вложены

Возвращает

Closure
\Closure

_resultInjectorsource protected

_resultInjector( Cake\ORM\Query $fetchQuery , array $resultMap , array $options )

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

Параметры

Cake\ORM\Query $fetchQuery
Запрос, используемый для извлечения результатов
array $resultMap
Массив, в котором внешний ключ является ключом, а соответствующие результаты целевой таблицы — значением.
array $options
Параметры, переданные методу eagerLoader

Возвращает

Closure
\Closure

_subqueryFieldssource protected

_subqueryFields( Cake\ORM\Query $query )

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

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

Параметры

Cake\ORM\Query $query
Запрос для получения полей.

Возвращает

array
Список полей для подзапроса.

eagerLoadersource public

eagerLoader( array $options )

requiresKeyssource public

requiresKeys( array $options [] )

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

Параметры

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

Возвращает

boolean
true, если список ключей потребуется

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

_camelizesource protected

_camelize( string $name )

Создает пришлизованную версию $name.

Параметры

string $name
название

Возвращает

string
Пришлизованное имя

_entityNamesource protected

_entityName( string $name )

Создает соответствующее имя сущности (единственное число) для указанного имени.

Параметры

string $name
Имя

Возвращает

string
Пришлизованное и множественное имя модели

_fixtureNamesource protected

_fixtureName( string $name )

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

Параметры

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

Возвращает

string
Ключ модели в единственном числе

_modelKeysource protected

_modelKey( string $name )

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

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

Параметры

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

Возвращает

string
Ключ модели в единственном числе

_modelNameFromKeysource protected

_modelNameFromKey( string $key )

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

Параметры

string $key
Внешний ключ

Возвращает

string
Имя модели

_pluginNamespacesource protected

_pluginNamespace( string $pluginName )

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

Параметры

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

Возвращает

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

_pluginPathsource protected

_pluginPath( string $pluginName )

Находит правильный путь к плагину. Ищет плагин в $pluginPaths.

Параметры

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

Возвращает

string
Путь к плагину.

_pluralHumanNamesource protected

_pluralHumanName( string $name )

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

Параметры

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

Возвращает

string
Множественное число имени

_singularHumanNamesource protected

_singularHumanName( string $name )

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

Параметры

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

Возвращает

string
Единственное число имени

_singularNamesource protected

_singularName( string $name )

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

Параметры

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

Возвращает

string
Имя переменной

_variableNamesource protected

_variableName( string $name )

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

Параметры

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

Возвращает

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

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

tableLocatorsource public

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

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

Параметры

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

Возвращает

Cake\ORM\Locator\LocatorInterface
\Cake\ORM\Locator\LocatorInterface

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

string SAVE_APPEND

Стратегия сохранения, которая только добавит к набору ссылок.

'append'
string SAVE_REPLACE

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

'replace'

Краткое описание констант, унаследованных от Cake\ORM\Association

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

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

$_dependentsource

protected boolean

Определяет, следует ли удалять записи в таблице связи при удалении записи в исходной таблице.

По умолчанию true для обратной совместимости.

true

$_joinTypesource

protected string

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

'INNER'

$_junctionAssociationNamesource

protected string

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

$_junctionConditionssource

protected null|array

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

$_junctionPropertysource

protected string

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

'_joinData'

$_junctionTablesource

protected Cake\ORM\Table

Экземпляр таблицы связи.

$_junctionTableNamesource

protected string

Имя таблицы связи.

$_saveStrategysource

protected string

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

Cake\ORM\Association\BelongsToMany::SAVE_REPLACE

$_strategysource

protected string

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

Cake\ORM\Association::STRATEGY_SELECT

$_targetConditionssource

protected null|array

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

$_targetForeignKeysource

protected string|array

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

$_throughsource

protected string|Cake\ORM\Table

Экземпляр таблицы для связи.

$_validStrategiessource

protected array

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

[self::STRATEGY_SELECT, self::STRATEGY_SUBQUERY]

Свойства, унаследованные от Cake\ORM\Association

$_bindingKeysource

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

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

$_cascadeCallbackssource

protected строка

Должны ли при каскадных удалениях также срабатывать обратные вызовы.

false

$_classNamesource

protected строка

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

$_conditionssource

protected массив

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

[]

$_findersource

protected строка

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

'all'

$_foreignKeysource

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

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

$_namesource

protected строка

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

$_propertyNamesource

protected строка

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

$_sourceTablesource

protected Cake\ORM\Table

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

$_targetTablesource

protected Cake\ORM\Table

Экземпляр целевой таблицы

Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait

$_tableLocatorsource

protected Cake\ORM\Locator\LocatorInterface

Экземпляр локатора таблиц

Свойства, используемые из Cake\ORM\Association\ExternalAssociationTrait

$_sortsource

protected смешанное

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

© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.ORM.Association.BelongsToMany.html

Spec-Zone.ru

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