Spec-Zone.ru › CakePHP 3.1

Класс HasMany

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

Пример ассоциации HasMany: Автор имеет множество статей.

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

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

_foreignKeyAcceptsNullsource protected

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

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

Параметры

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

Возвращает

boolean
bool

_linkFieldsource protected

_linkField( mixed $options )

_optionssource protected

_options( array $opts )

Парсинг дополнительных опций, переданных в конструктор.

Параметры

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

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

Cake\ORM\Association::_options()

_unlinksource protected

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

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

Параметры

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

Возвращает

boolean
успех

_unlinkAssociatedsource protected

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

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

Параметры

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

Возвращает

boolean
успех

isOwningSidesource public

isOwningSide( Cake\ORM\Table $side )

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

Параметры

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

Возвращает

boolean
bool

linksource public

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

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

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

Пример:

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

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

Параметры

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

Возвращает

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

replacesource public

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

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

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

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

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

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

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

Пример:

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

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

Параметры

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

Возвращает

boolean
успех

Выбрасывает

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

saveAssociatedsource public

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

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

Параметры

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

Возвращает

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

Выбрасывает

InvalidArgumentException
когда данные ассоциации не могут быть обработаны.

См.

Table::save()

saveStrategysource public

saveStrategy( string|null $strategy null )

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

Параметры

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

Возвращает

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

Выбрасывает

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

typesource public

type( )

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

Возвращает

string
строка

unlinksource 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

__callsource public

__call( string $method , array $argument )

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

Параметры

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

Возвращает

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

Исключения

BadMethodCallException
\BadMethodCallException

__constructsource public

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

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

Параметры

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

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

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

Параметры

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

_appendNotMatchingsource protected

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

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

Параметры

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

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

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

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

Примеры:

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

Параметры

строка|массив $finderData
Имя findera или массив, содержащий имя в качестве ключа и параметры в качестве значения.

Возвращает

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

_joinConditionsource protected

_joinCondition( array $options )

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

Параметры

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

Возвращает

array
массив

Исключения

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

attachTosource public

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

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

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

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

Параметры

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

Возбуждает

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

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 )

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

Параметры

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

Возвращает

boolean
bool

cascadeDeletesource абстрактный public

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

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

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

Параметры

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

Возвращает

boolean
Успех

conditionssource public

conditions( array|null $conditions null )

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

Параметры

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

Возвращает

array
массив

См. также

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

defaultRowValuesource public

defaultRowValue( array $row , boolean $joined )

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

Параметры

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

Возвращает

array
массив

deleteAllsource public

deleteAll( mixed $conditions )

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

Параметры

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

Возвращает

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

См. также

Cake\ORM\Table::deleteAll()

dependentsource public

dependent( boolean|null $dependent null )

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

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

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

Параметры

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

Возвращает

boolean
bool

eagerLoadersource абстрактный public

eagerLoader( array $options )

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

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

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

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

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

Параметры

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

Возвращает

Closure
\Closure

findsource public

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

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

Параметры

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

Возвращает

Cake\ORM\Query
\Cake\ORM\Query

См. также

Cake\ORM\Table::find()

findersource public

finder( string|null $finder null )

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

Параметры

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

Возвращает

string
строка

foreignKeysource public

foreignKey( string|null $key null )

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

Параметры

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

Возвращает

string|array
string|array

joinTypesource public

joinType( string $type null )

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

Параметры

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

Возвращает

string
string

namesource public

name( string|null $name null )

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

Параметры

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

Возвращает

string
string

propertysource public

property( string|null $name null )

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

Параметры

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

Возвращает

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

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

Параметры

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

Возвращает

string
string

Исключения

InvalidArgumentException
Когда предоставлена неверная стратегия.

targetsource public

target( Cake\ORM\Table $table null )

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

Параметры

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

Возвращает

Cake\ORM\Table
\Cake\ORM\Table

transformRowsource public

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

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

Параметры

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

Возвращает

array
array

updateAllsource public

updateAll( array $fields , mixed $conditions )

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

Параметры

array $fields
Хеш поля => новое значение.
mixed $conditions
Условие, принимающее все, что может принять Query::where().

Возвращает

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

См.

Cake\ORM\Table::updateAll()

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

cascadeDeletesource public

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

Каскадное удаление для удаления зависимых записей.

Этот метод ничего не делает, если ассоциация не является зависимой.

Параметры

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

Возвращает

boolean
Успех.

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

_buildResultMapsource protected

_buildResultMap( mixed $fetchQuery , mixed $options )

_defaultOptionssource protected

_defaultOptions( )

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

Возвращает

array
array

_externalOptionssource protected

_externalOptions( array $opts )

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

Параметры

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

canBeJoinedsource public

canBeJoined( array $options [] )

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

Параметры

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

Возвращает

boolean
если ключ «сопоставление» в $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 )

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

Параметры

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

Возвращает

string
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

_buildQuerysource protected

_buildQuery( 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

Сводка свойств

$_joinTypesource

protected строка

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

'INNER'

$_saveStrategysource

protected строка

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

Cake\ORM\Association\HasMany::SAVE_APPEND

$_strategysource

protected строка

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

Cake\ORM\Association::STRATEGY_SELECT

$_validStrategiessource

protected массив

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

[self::STRATEGY_SELECT, self::STRATEGY_SUBQUERY]

Наследованные свойства из Cake\ORM\Association

$_bindingKeysource

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

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

$_cascadeCallbackssource

protected строка

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

false

$_classNamesource

protected строка

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

$_conditionssource

protected массив

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

[]

$_dependentsource

protected булево

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

false

$_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.HasMany.html

Spec-Zone.ru

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