Класс Association
Association — это связь, устанавливаемая между двумя таблицами, используемая для настройки и настройки способа извлечения взаимосвязанных записей.
- Cake\ORM\Association использует Cake\Core\ConventionsTrait, Cake\ORM\Locator\LocatorAwareTrait
Непосредственные известные подклассы
Cake\ORM\Association\BelongsTo, Cake\ORM\Association\BelongsToMany, Cake\ORM\Association\HasMany, Cake\ORM\Association\HasOneПодробное описание методов
__callsource public
__call( string $method , array $argument )
Перенаправляет вызовы методов на целевую таблицу.
Параметры
- строка
$method - имя метода, который нужно вызвать
- массив
$argument - Список аргументов, переданных функции
Возвращает
mixedсмешанный тип
Исключения
BadMethodCallException\BadMethodCallException
__constructsource public
__construct( string $alias , array $options [] )
Конструктор. Подклассы могут переопределить функцию _options, чтобы получить исходный список переданных параметров, если ожидают какой-либо другой специальный ключ
Параметры
- строка
$alias - Имя, присвоенное ассоциации
- массив
$optionsнеобязательно [] - Список свойств, которые нужно установить для этого объекта
__getsource public
__get( string $property )
Перенаправляет получение свойства на целевую таблицу. Это удобно для получения ассоциаций этой ассоциации
Параметры
- строка
$property - имя свойства
Возвращает
Cake\ORM\Association\Cake\ORM\Association
Исключения
RuntimeExceptionесли ассоциации с таким именем не существует
__issetsource public
__isset( string $property )
Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, имеет ли целевая таблица другую ассоциацию с указанным именем
Параметры
- строка
$property - имя свойства
Возвращает
booleantrue, если свойство существует
_appendFieldssource protected
_appendFields( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )
Вспомогательная функция, используемая для условного добавления полей в предложение select запроса из полей, найденных в другом объекте запроса.
Параметры
-
Cake\ORM\Query$query - запрос, к которому будут добавлены поля
-
Cake\ORM\Query$surrogate - запрос, содержащий поля, которые нужно скопировать
- массив
$options - параметры, переданные методу
attachTo
_appendNotMatchingsource protected
_appendNotMatching( Cake\Database\Query $query , array $options )
Условно добавляет условие в переданный запрос, которое заставит его находить записи, где нет совпадения с данной ассоциацией.
Параметры
-
Cake\Database\Query$query - Запрос для изменения
- массив
$options - Массив параметров, содержащий ключ
negateMatch.
_bindNewAssociationssource protected
_bindNewAssociations( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )
Применяет все присоединяемые ассоциации к $query из включений, найденных в запросе $surrogate.
Копирует все включенные ассоциации из запроса $surrogate в переданный запрос $query. Включения изменяются так, чтобы они соответствовали цепочке ассоциаций, из которой они произошли.
Параметры
-
Cake\ORM\Query$query - запрос, к которому будут добавлены ассоциации
-
Cake\ORM\Query$surrogate - запрос, содержащий включения, которые нужно добавить
- массив
$options - параметры, переданные методу
attachTo
_dispatchBeforeFindsource protected
_dispatchBeforeFind( Cake\ORM\Query $query )
Вызывает beforeFind в целевой таблице для запроса, к которому присоединяется данная ассоциация.
Параметры
-
Cake\ORM\Query$query - запрос, к которому присоединяется данная ассоциация
_extractFindersource protected
_extractFinder( string|array $finderData )
Вспомогательный метод для вывода запрошенного поиска и его параметров.
Возвращает выведенные параметры из поиска $type.
Примеры:
Следующее вызовет поиск 'translations' со значением поиска в качестве параметров: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);
Параметры
- строка|массив
$finderData - Имя поиска или массив, имеющий имя в качестве ключа и параметры в качестве значения.
Возвращает
arrayмассив
_formatAssociationResultssource protected
_formatAssociationResults( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )
Добавляет функцию форматирования в переданный запрос $query если запрос $surrogate объявляет другую функцию форматирования. Поскольку запрос $surrogate соответствует целевой таблице ассоциации, результирующая функция форматирования будет результатом применения вспомогательных функций форматирования только к свойству, соответствующему данной таблице.
Параметры
-
Cake\ORM\Query$query - запрос, к которому будет применена функция форматирования
-
Cake\ORM\Query$surrogate - запрос, содержащий функции форматирования для связанной целевой таблицы
- массив
$options - параметры, переданные методу
attachTo
_joinConditionsource protected
_joinCondition( array $options )
Возвращает одно или несколько условий, которые нужно добавить к сгенерированному предложению join для получения результатов в целевой таблице.
Параметры
- массив
$options - список параметров, переданных методу attachTo
Возвращает
arrayмассив
Исключения
RuntimeExceptionесли количество столбцов в foreignKey не соответствует количеству столбцов в первичном ключе исходной таблицы
_optionssource protected
_options( array $options )
Переопределите эту функцию для инициализации любого конкретного класса ассоциации, ей будет передан исходный список параметров, используемых в конструкторе.
Параметры
- массив
$options - Список параметров, используемых для инициализации
attachTosource public
attachTo( Cake\ORM\Query $query , array $options [] )
Изменяет объект запроса, чтобы включить данные связанной целевой таблицы в конечный результат
Массив параметров может содержать следующие ключи:
- includeFields: Включить ли поля целевой модели в результат
- foreignKey: Имя поля, используемого в качестве внешнего ключа. Если false, внешний ключ не будет использован
- conditions: Массив с условиями фильтрации для объединения. Он будет объединён с любыми условиями, изначально настроенными для этого ассоциации
- fields: Список полей целевой таблицы для включения в результат
- type: Тип объединения (например, INNER) для записей, найденных в этой ассоциации
- aliasPath: Строка, разделённая точками, представляющая путь имён ассоциаций, следующих от основной таблицы запроса к этой ассоциации.
- propertyPath: Строка, разделённая точками, представляющая путь свойств ассоциации, которые необходимо пройти от основного сущности запроса к этой ассоциации
- joinType: Тип SQL-объединения для использования в запросе.
- negateMatch: Добавит условие в переданный запрос для исключения совпадений с этой ассоциацией.
Параметры
-
Cake\ORM\Query$query - запрос, который будет изменён для включения данных целевой таблицы
- массив
$optionsнеобязательный [] - Дополнительные параметры или переопределения, которые необходимо учесть
Возможные исключения
RuntimeExceptionесли переданный билдер запросов не возвращает объект запроса
bindingKeysource public
bindingKey( string|null $key null )
Устанавливает имя поля, представляющего поле связи с целевой таблицей. Если не указано явно, используется первичный ключ таблицы владельца.
Если параметры не переданы, возвращается текущее поле.
Параметры
- строка|null
$keyнеобязательный null - поле таблицы, используемое для связи обеих таблиц
Возвращает
string|arrayстрока|массив
canBeJoinedsource public
canBeJoined( array $options [] )
Указывает, может ли эта ассоциация быть выражена непосредственно в объединении запроса
Параметры
- массив
$optionsнеобязательный [] - пользовательский параметр, который может изменить возвращаемое значение
Возвращает
booleanлогическое значение
cascadeCallbackssource public
cascadeCallbacks( boolean|null $cascadeCallbacks null )
Устанавливает, будут ли вызываться обратные вызовы при каскадном удалении. Если аргументы не переданы, возвращается текущее значение настройки
Параметры
- логическое значение|null
$cascadeCallbacksнеобязательный null - значение переключателя для каскадных обратных вызовов
Возвращает
booleanлогическое значение
cascadeDeletesource абстрактный public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options [] )
Обрабатывает каскадное удаление из связанной модели.
Каждый реализующий класс должен обработать каскадное удаление по мере необходимости.
Параметры
-
Cake\Datasource\EntityInterface$entity - сущность, которая инициировала каскадное удаление
- массив
$optionsнеобязательный [] - параметры для исходного удаления
Возвращает
booleanУспех
conditionssource public
conditions( array|null $conditions null )
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации. Если параметры не переданы, возвращается текущий список.
Параметры
- массив|null
$conditionsнеобязательный null - список условий для использования
Возвращает
arrayмассив
См. также
\Cake\Database\Query::where() для примеров формата массиваdefaultRowValuesource public
defaultRowValue( array $row , boolean $joined )
Возвращает изменённую строку после добавления свойства для этой ассоциации со значением по умолчанию в зависимости от того, была ли ассоциация подключена или извлечена извне.
Параметры
- массив
$row - строка, для которой необходимо установить значение по умолчанию
- логическое значение
$joined - Указывает, является ли строка результатом прямого объединения с этой ассоциацией
Возвращает
arrayмассив
deleteAllsource public
deleteAll( mixed $conditions )
Делегирует операцию удаления методу deleteAll целевой таблицы
Параметры
- смешанное
$conditions - Условие для использования. Поддерживает любые значения, которые принимает Query::where().
Возвращает
booleanУспех. Возвращает true, если одна или несколько строк были затронуты.
См. также
Cake\ORM\Table::deleteAll()dependentsource public
dependent( boolean|null $dependent null )
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
В основном используется для указания того, что записи должны быть удалены, если запись владельца в исходной таблице удалена.
Если параметры не переданы, возвращается текущее значение.
Параметры
- логическое значение|null
$dependentнеобязательный null - Установить зависимый режим. Используйте null для чтения текущего состояния.
Возвращает
booleanлогическое значение
eagerLoadersource абстрактный public
eagerLoader( array $options )
Загружает список записей в целевой таблице, связанных с набором записей в исходной таблице. Источник записей может быть указан двумя способами: во-первых, передаётся объект запроса, настроенный для поиска в исходной таблице, а во-вторых, явно передаётся массив значений первичных ключей из исходной таблицы.
Требуемый способ передачи связанных записей источника контролируется «стратегией». При использовании стратегии подзапроса потребуется запрос к исходной таблице. При использовании стратегии выбора используется список первичных ключей.
Возвращает замыкание, которое должно быть выполнено для каждой записи, возвращаемой в определённом запросе. Это замыкание будет отвечать за внедрение полей, связанных с каждой конкретной переданной строкой.
Массив параметров принимает следующие ключи:
- query: Объект запроса, настроенный для поиска записей исходной таблицы
- keys: Список значений первичных ключей из исходной таблицы
- foreignKey: Имя поля, используемого для связи обеих таблиц
- conditions: Список условий, которые необходимо передать методу where() запроса
- sort: Направление, в котором должны быть возвращены записи
- fields: Список полей для выбора из целевой таблицы
- contain: Список связанных таблиц для загрузки по ассоциации с целевой таблицей
- strategy: Имя стратегии для использования при поиске записей целевой таблицы
- nestKey: Ключ массива, под которым будут находиться результаты при преобразовании строки
Параметры
- массив
$options - Параметры для загрузки по ассоциации.
Возвращает
Closure\Closure
findsource public
find( string|array $type null , array $options [] )
Делегирует операцию поиска методу find целевой таблицы и соответствующим образом изменяет запрос в зависимости от конфигурации этой ассоциации
Параметры
- строка|массив
$typeнеобязательный null - тип запроса для выполнения. Если передан массив, он интерпретируется как параметр
$options - массив
$optionsнеобязательный [] - Параметры для поиска
Возвращает
Cake\ORM\Query\Cake\ORM\Query
См. также
Cake\ORM\Table::find()findersource public
finder( string|null $finder null )
Устанавливает используемый по умолчанию метод поиска для извлечения строк из целевой таблицы. Если параметры не переданы, возвращается текущее имя метода поиска.
Параметры
- строка|null
$finderнеобязательный null - имя метода поиска для использования
Возвращает
stringстрока
foreignKeysource public
foreignKey( string|null $key null )
Устанавливает имя поля, представляющего внешний ключ для целевой таблицы. Если параметры не переданы, возвращается текущее поле.
Параметры
- string|null
$keyнеобязательно null - ключ, используемый для связи обеих таблиц
Возвращает
string|arraystring|array
isOwningSidesource abstract public
isOwningSide( Cake\ORM\Table $side )
Возвращает значение, указывающее, является ли переданная таблица стороной-владельцем для данной ассоциации. Это означает, что строки в таблице «target» могут потерять важную или необходимую информацию, если строка в таблице «source» не существует.
Параметры
-
Cake\ORM\Table$side - Возможная таблица с правом владения
Возвращает
booleanbool
joinTypesource public
joinType( string $type null )
Устанавливает тип соединения, который будет использоваться при добавлении ассоциации в запрос. Если аргументы не переданы, возвращается настроенный тип.
Параметры
- string
$typeнеобязательно null - тип соединения (например, INNER)
Возвращает
stringstring
namesource public
name( string|null $name null )
Устанавливает имя для этой ассоциации. Если аргумент не передан, возвращается текущее имя.
Параметры
- string|null
$nameнеобязательно null - Назначаемое имя
Возвращает
stringstring
propertysource public
property( string|null $name null )
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы. Если аргументы не переданы, возвращается настроенный тип.
Параметры
- string|null
$nameнеобязательно null - Имя свойства ассоциации. Используйте null для чтения текущего значения.
Возвращает
stringstring
saveAssociatedsource abstract public
saveAssociated( Cake\Datasource\EntityInterface $entity , array $options [] )
Извлекает данные ассоциации целевого объекта из переданного объекта сущности и делегирует операцию сохранения целевой таблице.
Параметры
-
Cake\Datasource\EntityInterface$entity - данные для сохранения
- array
$optionsнеобязательно [] - Параметры для сохранения связанных данных.
Возвращает
boolean|Cake\Datasource\EntityInterfacefalse, если $entity не удалось сохранить, в противном случае возвращает сохранённую сущность
См. также
Cake\ORM\Table::save()sourcesource public
source( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для стороны источника ассоциации. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы.
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который будет назначен как сторона источника
Возвращает
Cake\ORM\Table\Cake\ORM\Table
strategysource public
strategy( string|null $name null )
Устанавливает имя стратегии, используемой для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, но использовать стратегию по умолчанию, что делает любые изменения в этом параметре недействительными. Если аргументы не переданы, возвращается настроенная стратегия.
Параметры
- string|null
$nameнеобязательно null - Тип стратегии. Используйте null для чтения текущего значения.
Возвращает
stringstring
Выбрасывает
InvalidArgumentExceptionПри указании недействительной стратегии.
targetsource public
target( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для целевой стороны ассоциации. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы.
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который будет назначен как целевая сторона
Возвращает
Cake\ORM\Table\Cake\ORM\Table
transformRowsource public
transformRow( array $row , string $nestKey , boolean $joined )
Правильно вкладывает значения связанных строк результатов в правильные ключи массива внутри результатов источника.
Параметры
- array
$row - Строка для преобразования
- string
$nestKey - Ключ массива, под которым должны находиться результаты этой ассоциации
- boolean
$joined - Является ли строка результатом прямого соединения с этой ассоциацией
Возвращает
arrayarray
typesource abstract public
type( )
Получить тип взаимоотношений.
Возвращает
stringКонстанта типа ONE_TO_ONE, MANY_TO_ONE, ONE_TO_MANY или MANY_TO_MANY.
updateAllsource public
updateAll( array $fields , mixed $conditions )
Делегирует операцию обновления методу updateAll целевой таблицы.
Параметры
- array
$fields - Хэш поля => новое значение.
- mixed
$conditions - Условие, используемое, принимает любой элемент, который Query::where() может принять.
Возвращает
booleanВозвращает true, если одна или несколько строк затронуты.
См. также
Cake\ORM\Table::updateAll()Методы, используемые из Cake\Core\ConventionsTrait
_camelizesource protected
_camelize( string $name )
Создает камелизарованную версию $name
Параметры
- string
$name - имя
Возвращает
stringКамелизарованное имя
_entityNamesource protected
_entityName( string $name )
Создает правильное имя сущности (единственное число) для указанного имени
Параметры
- string
$name - Имя
Возвращает
stringКамелизарованное и множественное имя модели
_fixtureNamesource protected
_fixtureName( string $name )
Создает имя фикстуры
Параметры
- string
$name - Имя класса модели
Возвращает
stringКлюч модели в единственном числе
_modelKeysource protected
_modelKey( string $name )
Создает правильный подчеркнутый ключ модели для ассоциаций
Если вход содержит точку, предполагается, что правая часть — это фактическое имя таблицы.
Параметры
- string
$name - Имя класса модели
Возвращает
stringКлюч модели в единственном числе
_modelNameFromKeysource protected
_modelNameFromKey( string $key )
Создаёт правильное имя модели по внешнему ключу
Параметры
- строка
$key - Внешний ключ
Возвращаемые значения
stringИмя модели
_pluginNamespacesource protected
_pluginNamespace( string $pluginName )
Возвращает пространство имён плагина
Параметры
- строка
$pluginName - Имя плагина
Возвращаемые значения
stringПространство имён плагина
_pluginPathsource protected
_pluginPath( string $pluginName )
Находит правильный путь для плагина. Просматривает $pluginPaths для нужного плагина.
Параметры
- строка
$pluginName - Имя плагина (например, DebugKit)
Возвращаемые значения
stringПуть к плагину.
_pluralHumanNamesource protected
_pluralHumanName( string $name )
Создаёт множественное человекочитаемое имя, используемое в представлениях
Параметры
- строка
$name - Имя контроллера
Возвращаемые значения
stringМножественное человекочитаемое имя
_singularHumanNamesource protected
_singularHumanName( string $name )
Создаёт единственное человекочитаемое имя, используемое в представлениях
Параметры
- строка
$name - Имя контроллера
Возвращаемые значения
stringЕдинственное человекочитаемое имя
_singularNamesource protected
_singularName( string $name )
Создаёт единственное имя для использования в представлениях.
Параметры
- строка
$name - Используемое имя
Возвращаемые значения
stringИмя переменной
_variableNamesource protected
_variableName( string $name )
Создаёт множественное имя переменной для представлений
Параметры
- строка
$name - Используемое имя
Возвращаемые значения
stringМножественное имя для представлений
Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
tableLocatorsource public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблиц. Если параметры не переданы, вернёт текущий используемый локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Объект LocatorInterface.
Возвращаемые значения
Cake\ORM\Locator\LocatorInterface\Cake\ORM\Locator\LocatorInterface
Резюме констант
string | MANY_TO_MANY Тип связи для связей многие ко многим. | 'manyToMany' |
string | MANY_TO_ONE Тип связи для связей многие к одному. | 'manyToOne' |
string | ONE_TO_MANY Тип связи для связей один ко многим. | 'oneToMany' |
string | ONE_TO_ONE Тип связи для связей один к одному. | 'oneToOne' |
string | STRATEGY_JOIN Имя стратегии для использования соединений для получения связанных записей | 'join' |
string | STRATEGY_SELECT Имя стратегии для использования select для получения связанных записей | 'select' |
string | STRATEGY_SUBQUERY Имя стратегии для использования подзапроса для получения связанных записей | 'subquery' |
Резюме свойств
Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.ORM.Association.html