Класс 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Проверяет флаг NULL для внешнего ключа
- _linkField() protected
- _options() protectedОбработка дополнительных параметров, переданных в конструктор.
- _unlink() protected
Удаляет/устанавливает NULL связанные объекты, соответствующие $conditions. Действие зависит от зависимости между источником и целевыми объектами, а также от возможности NULL для внешнего ключа
- _unlinkAssociated() protected
Удаляет/устанавливает NULL связанные объекты в соответствии с зависимостью между источником и целевыми объектами и возможностью NULL для внешнего ключа. Пропускает удаление записей, присутствующих в $remainingEntities
- isOwningSide() public
Возвращает значение, указывающее, является ли переданная таблица владельцем этой ассоциации. Это означает, что строки в таблице «цель» будут лишены важной или необходимой информации, если строка в «источнике» не существует.
- 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 )
Проверяет флаг NULL для внешнего ключа
Параметры
-
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. Действие зависит от зависимости между источником и целевыми объектами, а также от возможности NULL для внешнего ключа
Параметры
- массив
$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 связанные объекты в соответствии с зависимостью между источником и целевыми объектами и возможностью NULL для внешнего ключа. Пропускает удаление записей, присутствующих в $remainingEntities
Параметры
- массив
$properties - массив свойств внешнего ключа
-
Cake\Datasource\EntityInterface$entity - сущность, которой должны быть отключены связанные сущности
-
Cake\ORM\Table$target - Таблица связанной таблицы
- массив
$remainingEntitiesнеобязательно [] - Сущности, которые не должны быть удалены
- массив
$optionsнеобязательно [] - список параметров, принимаемых
Table::delete()
Возвращает
booleanУспех
isOwningSide()source public
isOwningSide( Cake\ORM\Table $side )
Возвращает значение, указывающее, является ли переданная таблица владельцем этой ассоциации. Это означает, что строки в таблице «цель» будут лишены важной или необходимой информации, если строка в «источнике» не существует.
Параметры
-
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\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
_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 - запрос, который нужно изменить, чтобы включить данные целевой таблицы
- массив
$optionsнеобязательно [] - Дополнительные параметры или переопределения, которые следует учитывать
Исключения
RuntimeExceptionесли переданный билдер запросов не возвращает объект запроса
bindingKey()source public
bindingKey( string|null $key null )
Устанавливает имя поля, представляющего поле привязки к целевой таблице. Если не указано вручную, используется первичный ключ таблицы, владеющей стороной.
Если параметры не переданы, возвращается текущее поле.
Параметры
- строка|null
$keyнеобязательно null - поле таблицы, используемое для связи обеих таблиц
Возвращает
строка|массивcanBeJoined()source public
canBeJoined( array $options [] )
Можно ли выразить эту ассоциацию непосредственно в соединении запроса
Параметры
- массив
$optionsнеобязательно [] - настраиваемые параметры, которые могут изменить возвращаемое значение
Возвращает
booleancascadeCallbacks()source public
cascadeCallbacks( boolean|null $cascadeCallbacks null )
Устанавливает, следует ли также вызывать коллбеки при каскадном удалении. Если аргументы не переданы, возвращается текущее настроенное значение
Параметры
- boolean|null
$cascadeCallbacksнеобязательно null - значение переключателя каскадных коллбеков
Возвращает
booleancascadeDelete()source abstract public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options [] )
Обрабатывает каскадное удаление из ассоциированной модели.
Каждый реализуемый класс должен обрабатывать каскадное удаление в соответствии с требованиями.
Параметры
-
Cake\Datasource\EntityInterface$entity - сущность, которая инициировала каскадное удаление.
- массив
$optionsнеобязательно [] - параметры исходного удаления.
Возвращает
booleanУспех
conditions()source public
conditions( array|null $conditions null )
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации. Если параметры не переданы, возвращается текущий список.
Параметры
- массив|null
$conditionsнеобязательно null - список условий, которые нужно использовать
Возвращает
массивСм.
\Cake\Database\Query::where() для примеров формата массиваdefaultRowValue()source public
defaultRowValue( array $row , boolean $joined )
Возвращает изменённую строку после добавления свойства для этой ассоциации со значением по умолчанию в соответствии с тем, была ли ассоциация присоединена или извлечена внешним образом.
Параметры
- массив
$row - строка, для которой нужно установить значение по умолчанию.
- boolean
$joined Является ли строка результатом непосредственного объединения с этой ассоциацией
Возвращает
массивdeleteAll()source public
deleteAll( mixed $conditions )
Делегирует операцию удаления методу deleteAll целевой таблицы
Параметры
- mixed
$conditions Условие, которое может принимать все, что может принять Query::where().
Возвращает
integerВозвращает количество затронутых строк.
См. также
\Cake\ORM\Table::deleteAll()dependent()source public
dependent( boolean|null $dependent null )
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это в основном используется для указания того, что записи должны быть удалены, если запись-владелец в исходной таблице удалена.
Если параметры не переданы, возвращается текущее значение.
Параметры
- boolean|null
$dependentнеобязательно null - Установить зависимость. Используйте null, чтобы прочитать текущее состояние.
Возвращает
booleaneagerLoader()source абстрактный public
eagerLoader( array $options )
Загружает список записей в целевой таблице, связанных с другим набором записей в исходной таблице. Записи исходной таблицы могут быть указаны двумя способами: сначала передается объект запроса, настроенный для поиска в исходной таблице, а затем явно передается массив значений первичного ключа из исходной таблицы.
Требуемый способ передачи связанных записей исходной таблицы контролируется «стратегией». При использовании стратегии подзапросов потребуется запрос на исходную таблицу. При использовании стратегии выбора будет использоваться список первичных ключей.
Возвращает замыкание, которое должно выполняться для каждой записи, возвращаемой в определенном запросе. Это вызываемая сущность будет отвечать за вставку полей, связанных с каждой конкретной переданной строкой.
Массив опций принимает следующие ключи:
- запрос: объект запроса, настроенный для поиска записей исходной таблицы
- ключи: список значений первичных ключей из исходной таблицы
- foreignKey: имя поля, используемого для связи обеих таблиц
- условия: список условий, которые должны быть переданы в метод where() запроса
- сортировка: направление, в котором должны возвращаться записи
- поля: список полей для выбора из целевой таблицы
- содержимое: список связанных таблиц для загрузки связанных с целевой таблицей
- стратегия: имя стратегии для поиска записей целевой таблицы
- nestKey: ключ массива, под которым будут найдены результаты при преобразовании строки
Параметры
- array
$options - Параметры для загрузки.
Возвращает
Closureexists()source public
exists( array|callable|Cake\Database\ExpressionInterface $conditions )
Делегирует операцию методу exists целевой таблицы после добавления стандартных условий для этой связи
Параметры
- array|callable|
Cake\Database\ExpressionInterface$conditions Условия для проверки, соответствует ли какая-либо запись.
Возвращает
booleanСм. также
\Cake\ORM\Table::exists()find()source public
find( string|array|null $type null , array $options [] )
Делегирует операцию поиска методу find целевой таблицы и изменяет запрос в соответствии с конфигурацией этой связи
Параметры
- string|array|null
$typeнеобязательно null тип запроса, если передается массив, он интерпретируется как параметр
$options- array
$optionsнеобязательно [] - Параметры для поиска
Возвращает
Cake\ORM\QueryСм. также
\Cake\ORM\Table::find()finder()source public
finder( string|null $finder null )
Устанавливает имя стандартного нахождения для извлечения строк из целевой таблицы. Если параметры не переданы, возвращается имя текущего нахождения.
Параметры
- string|null
$finderнеобязательно null - имя нахождения
Возвращает
stringforeignKey()source public
foreignKey( string|null $key null )
Устанавливает имя поля, представляющего внешний ключ к целевой таблице. Если параметры не переданы, возвращается текущее поле
Параметры
- string|null
$keyнеобязательно null - ключ для связи обеих таблиц
Возвращает
string|arrayjoinType()source public
joinType( string|null $type null )
Устанавливает тип соединения, используемый при добавлении связи в запрос. Если аргументы не переданы, возвращается текущий тип.
Параметры
- string|null
$typeнеобязательно null - тип соединения (например, INNER)
Возвращает
stringname()source public
name( string|null $name null )
Устанавливает имя для этой связи. Если аргумент не передан, возвращается текущее имя
Параметры
- string|null
$nameнеобязательно null - Назначаемое имя
Возвращает
stringproperty()source public
property( string|null $name null )
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы. Если аргументы не переданы, возвращается текущий тип.
Параметры
- string|null
$nameнеобязательно null - Имя свойства ассоциации. Используйте null, чтобы прочитать текущее значение.
Возвращает
stringsource()source public
source( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для исходной стороны связи. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который будет назначен для исходной стороны
Возвращает
Cake\ORM\Tablestrategy()source public
strategy( string|null $name null )
Устанавливает имя стратегии для извлечения связанных записей. Имейте в виду, что некоторые типы связей могут не реализовать, но по умолчанию стратегия, делая любые изменения в этом параметре недействительными. Если аргументы не переданы, возвращается текущая настроенная стратегия.
Параметры
- string|null
$nameнеобязательно null - Тип стратегии. Используйте null, чтобы прочитать текущее значение.
Возвращает
stringИсключение
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 , string $targetProperty null )
Правильно вложенные значения строки результата, связанные с правильными ключами массива внутри исходных результатов.
Параметры
- array
$row - Строка для преобразования
- string
$nestKey Ключ массива, под которым должны быть найдены результаты этой связи
- boolean
$joined Указывает, является ли строка результатом прямого соединения с этой связью
- string
$targetPropertyнеобязательно null Имя свойства в исходных результатах, где данные ассоциации должны быть вложены. Будет использоваться значение по умолчанию, если не указано.
Возвращает
arrayupdateAll()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
Возвращает
arraycanBeJoined()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
Параметры
- строка
$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
tableLocator()source public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблицы. Если параметры не переданы, вернёт текущий локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Объект LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterfaceПодробное описание свойств
$_joinTypesource
protected string
Тип соединения, который будет использоваться при добавлении ассоциации в запрос
'INNER'
$_saveStrategysource
protected string
Стратегия сохранения, которая будет использоваться этой ассоциацией
self::SAVE_APPEND
$_strategysource
protected string
Имя стратегии, которая будет использоваться для получения связанных записей.
self::STRATEGY_SELECT
$_validStrategiessource
protected array
Допустимые стратегии для этого типа ассоциации
[self::STRATEGY_SELECT, self::STRATEGY_SUBQUERY]
© 2005–2017 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.3/class-Cake.ORM.Association.HasMany.html