Класс HasMany
Представляет отношение N - 1, где целевая сторона отношения будет содержать одну или несколько записей на каждую запись в стороне источника.
Примеры ассоциации HasMany: Автор имеет много статей.
- Cake\ORM\Association использует Cake\Core\ConventionsTrait, Cake\ORM\Locator\LocatorAwareTrait
-
Cake\ORM\Association\HasMany использует Cake\ORM\Association\DependentDeleteTrait, Cake\ORM\Association\ExternalAssociationTrait
Краткое описание констант
-
string'append' -
string'replace'
Унаследованные константы
-
MANY_TO_MANY,MANY_TO_ONE,ONE_TO_MANY,ONE_TO_ONE,STRATEGY_JOIN,STRATEGY_SELECT,STRATEGY_SUBQUERY
Краткое описание свойств
-
$_joinTypeprotectedТип соединения, используемого при добавлении ассоциации в запросstring -
$_saveStrategyprotectedСтратегия сохранения, используемая этой ассоциациейstring -
$_strategyprotectedИмя стратегии, используемой для извлечения связанных записей.string -
$_validStrategiesprotectedДопустимые стратегии для этого типа ассоциацииarray
Унаследованные свойства
-
_bindingKey,_cascadeCallbacks,_className,_conditions,_dependent,_finder,_foreignKey,_name,_propertyName,_sourceTable,_targetTable_tableLocator_sort
Краткое описание методов
- _foreignKeyAcceptsNull() protectedПроверяет флаг nullable внешнего ключа
- _linkField() protected
- _options() protectedОбрабатывает дополнительные параметры, переданные в конструктор.
- _unlink() protected
Удаляет/устанавливает значение null для связанных объектов, соответствующих условиям $conditions. Действие зависит от зависимости между источником и целевыми объектами, а также от nullable внешнего ключа
- _unlinkAssociated() protected
Удаляет/устанавливает значение null для связанных объектов в соответствии с зависимостью между источником и целевыми объектами и nullable внешним ключом. Пропускает удаление записей, присутствующих в $remainingEntities
- isOwningSide() public
Возвращает true, если переданная таблица является стороной владения для этой ассоциации. Это означает, что строки в таблице «цель» будут потерять важную или необходимую информацию, если строка в таблице «источник» не существует.
- link() public
Связывает сущность источника с каждым из целевых объектов, предоставленных. При использовании этого метода все сущности в
$targetEntitiesбудут добавлены к свойству сущности источника, соответствующему этому объекту ассоциации. - replace() public
Заменяет существующие связи ассоциации между сущностью источника и целевой сущностью на переданные. Этот метод выполняет интеллектуальную очистку, связи, которые уже сохранены и присутствуют в
$targetEntities, не будут удалены, новые связи будут созданы для переданных целевых сущностей, которые еще не находятся в базе данных, а остальные будут удалены. - saveAssociated() public
Берет сущность из таблицы источника и проверяет, есть ли поле, соответствующее имени свойства для этой ассоциации. Найденная сущность будет сохранена в таблице назначения для этой ассоциации, передав предоставленные
$options - saveStrategy() public
Устанавливает стратегию, которая должна быть использована для сохранения. Если вызов происходит без аргументов, он вернет текущую настроенную стратегию
- type() publicПолучает тип отношения.
- unlink() public
Удаляет все связи между переданной сущностью источника и каждым из предоставленных целевых объектов. Этот метод предполагает, что все переданные объекты уже сохранены в базе данных и что каждый из них содержит значение первичного ключа.
Подробное описание методов
_foreignKeyAcceptsNull()source protected
_foreignKeyAcceptsNull( Cake\ORM\Table $table , array $properties )
Проверяет флаг nullable внешнего ключа
Параметры
-
Cake\ORM\Table$table - таблица, содержащая внешний ключ
- массив
$properties - список полей, составляющих внешний ключ
Возвращает
boolean_linkField()source protected
_linkField( $options )
_options()source protected
_options( array $opts )
Обрабатывает дополнительные параметры, переданные в конструктор.
Параметры
- массив
$opts - исходный список параметров, переданных в конструктор
Переопределяет
Cake\ORM\Association::_options() _unlink()source 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успех
_unlinkAssociated()source 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успех
isOwningSide()source public
isOwningSide( Cake\ORM\Table $side )
Возвращает true, если переданная таблица является стороной владения для этой ассоциации. Это означает, что строки в таблице «цель» будут потерять важную или необходимую информацию, если строка в таблице «источник» не существует.
Параметры
-
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->association('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 )
Устанавливает стратегию, которая должна использоваться для сохранения. Если вызвано без аргументов, вернет текущую настроенную стратегию
Параметры
- строка|null
$strategyнеобязательно null - имя стратегии, которое следует использовать
Возвращает
строкастратегия, используемая для сохранения
Исключения
InvalidArgumentExceptionесли передано недопустимое имя стратегии
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\Database\Query $query , array $options )
Условно добавляет условие в переданный запрос, которое будет подбирать записи, где нет совпадения с этим сопоставлением.
Параметры
-
Cake\Database\Query$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
_joinCondition()source protected
_joinCondition( array $options )
Возвращает одно или несколько условий, которые необходимо добавить к сгенерированной части условия объединения для получения результатов в целевой таблице.
Параметры
- массив
$options - список параметров, переданных методу attachTo
Возвращает
массивИсключения
RuntimeExceptionесли количество столбцов в foreignKey не соответствует количеству столбцов в первичном ключе исходной таблицы
_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 - запрос, который будет изменен для включения данных целевой таблицы
- массив
$optionsoptional [] - Любые дополнительные параметры или переопределения, которые необходимо учитывать
Исключения
RuntimeExceptionесли переданный обработчик запросов не возвращает объект запроса
bindingKey()source public
bindingKey( string|null $key null )
Устанавливает имя поля, представляющего поле связывания с целевой таблицей. Если не указано явно, используется первичный ключ таблицы владельца.
Если параметры не переданы, возвращается текущее поле.
Параметры
- строка|null
$keyoptional null - поле таблицы, используемое для связи обеих таблиц
Возвращает
строка|массивcanBeJoined()source public
canBeJoined( array $options [] )
Можно ли выразить эту ассоциацию непосредственно в объединении запроса.
Параметры
- массив
$optionsoptional [] - настраиваемый ключ параметров, который может изменить возвращаемое значение
Возвращает
booleancascadeCallbacks()source public
cascadeCallbacks( boolean|null $cascadeCallbacks null )
Устанавливает, должны ли вызываться обратные вызовы при каскадном удалении. Если аргументы не переданы, возвращается текущее значение конфигурации
Параметры
- boolean|null
$cascadeCallbacksoptional null - значение переключателя каскадных обратных вызовов
Возвращает
booleancascadeDelete()source abstract public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options [] )
Обрабатывает каскадное удаление из связанной модели.
Каждый реализуемый класс должен обрабатывать каскадное удаление в соответствии с требованиями.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность, которая инициировала каскадное удаление.
- массив
$optionsoptional [] - Параметры для первоначального удаления.
Возвращает
booleanУспех
conditions()source public
conditions( array|null $conditions null )
Устанавливает список условий, которые всегда должны включаться при извлечении записей из связанной ассоциации. Если параметры не переданы, возвращается текущий список.
Параметры
- массив|null
$conditionsoptional null - список условий для использования
Возвращает
массивСм.
\Cake\Database\Query::where() для примеров формата массиваdefaultRowValue()source public
defaultRowValue( array $row , boolean $joined )
Возвращает изменённую строку после добавления свойства для этой ассоциации со значением по умолчанию в зависимости от того, была ли ассоциация присоединена или получена внешним образом.
Параметры
- массив
$row - Строка, для которой нужно установить значение по умолчанию.
- логическое значение
$joined Является ли строка результатом прямого присоединения к этой ассоциации
Возвращаемое значение
массивdeleteAll()source public
deleteAll( mixed $conditions )
Делегирует операцию удаления методу deleteAll целевой таблицы
Параметры
- смешанное значение
$conditions Условия, которые будут использованы, поддерживаются Query::where().
Возвращаемое значение
логическое значениеУспех Возвращает true, если одно или несколько строк затронуты.
См. также
\Cake\ORM\Table::deleteAll()dependent()source public
dependent( boolean|null $dependent null )
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это в основном используется для указания того, что записи должны быть удалены, если запись-владелец в исходной таблице удалена.
Если параметры не переданы, возвращается текущее значение.
Параметры
- логическое значение/null
$dependentнеобязательно null - Установить зависимый режим. Используйте null для чтения текущего состояния.
Возвращаемое значение
логическое значениеeagerLoader()source abstract public
eagerLoader( array $options )
Загружает в режиме ожидания список записей в целевой таблице, которые связаны с другим набором записей в исходной таблице. Источник записей может быть указан двумя способами: сначала, передав объект Query, настроенный для поиска в исходной таблице, а во-вторых, явно передав массив значений первичных ключей из исходной таблицы.
Требуемый способ передачи связанных записей источника контролируется «стратегией». При использовании стратегии подзапроса потребуется запрос к исходной таблице. При использовании стратегии выбора будет использоваться список первичных ключей.
Возвращает замыкание, которое должно быть выполнено для каждой записи, возвращаемой в определённом запросе. Эта вызываемая функция будет отвечать за вставку полей, связанных с каждой конкретной переданной строкой.
Массив параметров принимает следующие ключи:
- запрос: объект Query, настроенный для поиска записей исходной таблицы
- ключи: список значений первичных ключей из исходной таблицы
- foreignKey: имя поля, используемого для связи обеих таблиц
- условия: список условий, которые необходимо передать методу query where()
- сортировка: направление, в котором должны быть возвращены записи
- поля: список полей для выбора из целевой таблицы
- contain: список связанных таблиц для загрузки в режиме ожидания связанных с целевой таблицей
- стратегия: имя стратегии, используемой для поиска записей целевой таблицы
- nestKey: ключ массива, под которым будут найдены результаты при преобразовании строки
Параметры
- массив
$options - Параметры для загрузки в режиме ожидания.
Возвращаемое значение
Закрытие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 )
Устанавливает используемый по умолчанию поиск для извлечения строк из целевой таблицы. Если параметры не переданы, возвращается текущее имя настроенного поиска.
Параметры
- строка/null
$finderнеобязательно null - имя поиска для использования
Возвращаемое значение
строкаforeignKey()source public
foreignKey( string|null $key null )
Устанавливает имя поля, представляющего внешний ключ к целевой таблице. Если параметры не переданы, возвращается текущее поле.
Параметры
- строка/null
$keyнеобязательно null - ключ, используемый для связи обеих таблиц
Возвращаемое значение
строка/массивjoinType()source public
joinType( string|null $type null )
Устанавливает тип соединения, который будет использоваться при добавлении ассоциации в запрос. Если аргументы не переданы, возвращается текущий настроенный тип.
Параметры
- строка/null
$typeнеобязательно null - тип соединения (например, INNER)
Возвращаемое значение
строкаname()source public
name( string|null $name null )
Устанавливает имя для этой ассоциации. Если аргумент не передан, возвращается текущее настроенное имя.
Параметры
- строка/null
$nameнеобязательно null - Назначаемое имя
Возвращаемое значение
строкаproperty()source public
property( string|null $name null )
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы. Если аргументы не переданы, возвращается текущий настроенный тип.
Параметры
- строка/null
$nameнеобязательно null - Имя свойства ассоциации. Используйте null для чтения текущего значения.
Возвращаемое значение
строкаsource()source public
source( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для исходной стороны ассоциации. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы.
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который будет назначен как исходная сторона
Возвращаемое значение
Cake\ORM\Tablestrategy()source public
strategy( string|null $name null )
Устанавливает имя стратегии, используемой для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, но имеют стратегию по умолчанию, что делает любые изменения в этом параметре недействительными. Если аргументы не переданы, возвращается текущая настроенная стратегия.
Параметры
- строка/null
$nameнеобязательно null - Тип стратегии. Используйте null для чтения текущего значения.
Возвращаемое значение
строкаИсключения
InvalidArgumentExceptionПри предоставлении неверной стратегии.
target()source public
target( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для целевой стороны ассоциации. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы.
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который будет назначен как целевая сторона
Возвращаемое значение
Cake\ORM\TabletransformRow()source public
transformRow( array $row , string $nestKey , boolean $joined )
Правильно вкладывает значения связанной строки результатов в правильные ключи массива внутри исходных результатов.
Параметры
- массив
$row - Строка для преобразования
- строка
$nestKey Ключ массива, под которым должны быть найдены результаты этой ассоциации
- логическое значение
$joined Является ли строка результатом прямого присоединения к этой ассоциации
Возвращаемое значение
массивupdateAll()source public
updateAll( array $fields , mixed $conditions )
Делегирует операцию обновления методу updateAll целевой таблицы
Параметры
- массив
$fields - Хэш поле => новое значение.
- смешанное
$conditions Условие, принимает все, что может принять Query::where().
Возвращаемые значения
booleanУспех Возвращает true, если затронуто одно или несколько строк.
См. также
\Cake\ORM\Table::updateAll()Методы, используемые из Cake\ORM\Association\DependentDeleteTrait
cascadeDelete()source public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options [] )
Каскадное удаление зависимых записей.
Этот метод ничего не делает, если ассоциация не является зависимой.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность, которая инициировала каскадное удаление.
- массив
$optionsнеобязательно [] - Параметры для исходного удаления.
Возвращаемые значения
booleanУспешно.
Методы, используемые из Cake\ORM\Association\ExternalAssociationTrait
_buildResultMap()source protected
_buildResultMap( $fetchQuery , $options )
_defaultOptions()source protected
_defaultOptions( )
Возвращает параметры по умолчанию для eagerLoader
Возвращаемые значения
массивcanBeJoined()source public
canBeJoined( array $options [] )
Можно ли выразить эту ассоциацию непосредственно в соединении запроса
Параметры
- массив
$optionsнеобязательно [] - настраиваемый ключ параметров, который может изменить значение возвращаемого значения
Возвращаемые значения
booleanЕсли ключ 'matching' в $option имеет значение true, эта функция вернет true, в противном случае — false
defaultRowValue()source public
defaultRowValue( $row , $joined )
foreignKey()source public
foreignKey( string|null $key null )
Устанавливает имя поля, представляющего внешний ключ к исходной таблице. Если параметры не переданы, возвращается текущее поле
Параметры
- строка|null
$keyнеобязательно null - ключ, используемый для связи обеих таблиц
Возвращаемые значения
строкаsort()source public
sort( mixed $sort null )
Устанавливает порядок сортировки, в котором должны возвращаться целевые записи. Если аргументы не переданы, возвращается текущее настроенное значение
Параметры
- смешанное
$sortнеобязательно null - Условие сортировки, совместимое с find()
Возвращаемые значения
смешанноеМетоды, используемые из Cake\Core\ConventionsTrait
_camelize()source protected
_camelize( string $name )
Создает версию $name с использованием camelCase
Параметры
- строка
$name - имя
Возвращаемые значения
строкаИмя с camelCase
_entityName()source protected
_entityName( string $name )
Создаёт правильное имя сущности (единственное число) для указанного имени
Параметры
- строка
$name - Имя
Возвращаемые значения
строкаИмя модели с camelCase и множественным числом
_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
tableLocator()source public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблицы. Если параметры не переданы, возвращает текущий используемый локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательный null - Экземпляр LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterfaceПодробное описание свойств
$_joinTypesource
protected строка
Тип соединения, используемый при добавлении ассоциации в запрос
'INNER'
$_saveStrategysource
protected строка
Стратегия сохранения, используемая этой ассоциацией
self::SAVE_APPEND
$_strategysource
protected строка
Имя стратегии, используемой для получения связанных записей.
self::STRATEGY_SELECT
$_validStrategiessource
protected массив
Допустимые стратегии для этого типа ассоциации
[self::STRATEGY_SELECT, self::STRATEGY_SUBQUERY]
© 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.2/class-Cake.ORM.Association.HasMany.html