Класс HasMany
Представляет отношение N - 1, где целевая сторона отношения будет иметь один или несколько записей на каждую запись в стороне источника.
Примером ассоциации HasMany является Автор имеет много Статей.
- Cake\ORM\Association использует Cake\Core\ConventionsTrait , Cake\ORM\Locator\LocatorAwareTrait
-
Cake\ORM\Association\HasMany
Краткое описание констант
-
stringSAVE_APPEND'append' -
stringSAVE_REPLACE'replace'
Унаследованные константы
-
MANY_TO_MANY,MANY_TO_ONE,ONE_TO_MANY,ONE_TO_ONE,STRATEGY_JOIN,STRATEGY_SELECT,STRATEGY_SUBQUERY
Краткое описание свойств
-
$_joinTypeprotectedТип соединения, используемого при добавлении ассоциации в запросstring -
$_saveStrategyprotectedСтратегия сохранения, используемая этой ассоциациейstring -
$_sortprotectedПорядок возврата целевых записейmixed -
$_strategyprotectedИмя стратегии, используемой для извлечения связанных записей.string -
$_validStrategiesprotectedДопустимые стратегии для этого типа ассоциации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 -
Устанавливает стратегию, которая должна использоваться для сохранения. Если вызвано без аргументов, то возвращается текущая настроенная стратегия
- setSaveStrategy() publicУстанавливает стратегию, которая должна использоваться для сохранения.
- setSort() publicУстанавливает порядок сортировки, в котором должны возвращаться целевые записи.
-
Устанавливает порядок сортировки, в котором должны возвращаться целевые записи. Если не переданы аргументы, возвращается текущее настроенное значение
- 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() _saveTarget()source protected
_saveTarget( array $foreignKeyReference , Cake\Datasource\EntityInterface $parentEntity , array|Traversable $entities , array $options )
Сохраняет каждый из сущностей в целевой таблице и создаёт ссылки между родительской сущностью и каждой из сохранённых целевых сущностей.
Параметры
- массив
$foreignKeyReference Ссылка на внешний ключ, определяющий связь между целевой сущностью и родительской сущностью.
-
Cake\Datasource\EntityInterface$parentEntity Исходная сущность, содержащая целевые сущности, которые необходимо сохранить.
- массив|Перебираемый
$entities список сущностей для сохранения в целевой таблице и связывания с родительской сущностью
- массив
$options - список опций, принимаемых
Table::save().
Возвращает
booleantrue при успехе, 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 - Возможная таблица с владением
Возвращает
booleanlink()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
Возвращает
booleantrue при успехе, 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\EntityInterfacefalse, если $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()
Возвращает
смешанный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 - имя свойства
Возвращает
booleantrue, если свойство существует
_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()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\TablegetStrategy()source public
getStrategy( )
Получает имя стратегии, которое будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, но по умолчанию стратегию, что делает любые изменения в этом параметре бессмысленными.
Возвращает
строкаgetTarget()source public
getTarget( )
Получает экземпляр таблицы для целевой стороны ассоциации.
Возвращает
Cake\ORM\TablejoinType()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\Tablestrategy()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\TabletransformRow()source public
transformRow( array $row , string $nestKey , boolean $joined , string|null $targetProperty = null )
Правильно вкладывает значения результата строки, связанные с результатами, в правильные ключи массива внутри исходных результатов.
Параметры
- array
$row - Строка для преобразования
- string
$nestKey Ключ массива, под которым должны находиться результаты этой ассоциации
- boolean
$joined Является ли строка результатом прямого объединения с этой ассоциацией
- string|null
$targetPropertyнеобязательно null Имя свойства в исходных результатах, где должны быть вложены данные ассоциации. Использует значение по умолчанию, если не указано.
Возвращает
arrayupdateAll()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\LocatorInterfacesetTableLocator()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
$_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