Spec-Zone.ru › CakePHP 3.1

Класс 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
Абстрактный
Пространство имён: Cake\ORM
Расположен в ORM/Association.php

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

__callsource public

__call( string $method , array $argument )

Перенаправляет вызовы методов на целевую таблицу.

Параметры

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

Возвращает

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

Исключения

BadMethodCallException
\BadMethodCallException

__constructsource public

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

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

Параметры

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

__getsource public

__get( string $property )

Перенаправляет получение свойства на целевую таблицу. Это удобно для получения ассоциаций этой ассоциации

Параметры

строка $property
имя свойства

Возвращает

Cake\ORM\Association
\Cake\ORM\Association

Исключения

RuntimeException
если ассоциации с таким именем не существует

__issetsource public

__isset( string $property )

Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, имеет ли целевая таблица другую ассоциацию с указанным именем

Параметры

строка $property
имя свойства

Возвращает

boolean
true, если свойство существует

_appendFieldssource protected

_appendFields( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )

Вспомогательная функция, используемая для условного добавления полей в предложение 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
Список параметров, используемых для инициализации
END_OF_DOCUMENT_MARKER ```

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

isOwningSidesource abstract public

isOwningSide( Cake\ORM\Table $side )

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

Параметры

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

Возвращает

boolean
bool

joinTypesource public

joinType( string $type null )

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

Параметры

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

Возвращает

string
string

namesource public

name( string|null $name null )

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

Параметры

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

Возвращает

string
string

propertysource public

property( string|null $name null )

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

Параметры

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

Возвращает

string
string

saveAssociatedsource abstract public

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

Извлекает данные ассоциации целевого объекта из переданного объекта сущности и делегирует операцию сохранения целевой таблице.

Параметры

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

Возвращает

boolean|Cake\Datasource\EntityInterface
false, если $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 для чтения текущего значения.

Возвращает

string
string

Выбрасывает

InvalidArgumentException
При указании недействительной стратегии.

targetsource public

target( Cake\ORM\Table $table null )

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

Параметры

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

Возвращает

Cake\ORM\Table
\Cake\ORM\Table

transformRowsource public

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

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

Параметры

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

Возвращает

array
array

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'

Резюме свойств

$_bindingKeysource

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

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

$_cascadeCallbackssource

protected строка

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

false

$_classNamesource

protected строка

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

$_conditionssource

protected массив

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

[]

$_dependentsource

protected логическое

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

false

$_findersource

protected строка

Имя по умолчанию для поиска строк в целевой таблице

'all'

$_foreignKeysource

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

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

$_joinTypesource

protected строка

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

'LEFT'

$_namesource

protected строка

Имя, присвоенное ассоциации, обычно представляет псевдоним, присвоенный целевой связанной таблице

$_propertyNamesource

protected строка

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

$_sourceTablesource

protected Cake\ORM\Table

Экземпляр исходной таблицы

$_strategysource

protected строка

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

Cake\ORM\Association::STRATEGY_JOIN

$_targetTablesource

protected Cake\ORM\Table

Экземпляр целевой таблицы

$_validStrategiessource

protected массив

Допустимые стратегии для этой ассоциации. Подклассы могут сузить этот диапазон.

[self::STRATEGY_JOIN, self::STRATEGY_SELECT, self::STRATEGY_SUBQUERY]

Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait

$_tableLocatorsource

protected Cake\ORM\Locator\LocatorInterface

Экземпляр локатора таблицы

© 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

Spec-Zone.ru

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