Соединительная таблица в yii Переполнение стека

Я хотел бы создать соединительную таблицу tbl_guid_cost_centre об этом позаботятся без меня, вручную сохраняя его в базе данных. Я попытался добавить это в мои отношения:

'costCentre' => [
self::HAS_ONE,
'CostCentre',
'guid_to',
'foreignKey' => 'guid',
'tbl_guid_cost_centre(guid_to, cost_center_id)',
"order" => "id desc"],

так что при сохранении costCentre для него создается строка в моем tbl_guid_cost_centre, Однако я получаю ошибку:

Свойство «CHasOneRelation.0» не определено.

Любое предложение?

0

Решение

Вы можете иметь свою таблицу соединений с ключевым словом through в ваших отношениях:

public function relations() {
'guidCostCentre' => [
self::HAS_ONE,
'GuidCostCentre',
['guid_to' => 'guid']
],
'costCentre' => [
self::HAS_ONE,
'CostCentre',
'cost_centre_id',
'through' => 'guidCostCentre'
]
}
2

Другие решения

Вы определяете HAS_ONE отношение в неправильном пути. Первыми тремя элементами массива конфигурации отношений должны быть: тип отношения, имя связанной модели и определение внешних ключей. Все остальные элементы должны быть проиндексированы ключами, связанными со свойствами отношений. 'tbl_guid_cost_centre(guid_to, cost_center_id)', вероятно, генерирует эту ошибку, потому что у него нет ключа, поэтому он обрабатывается как значение для 0 имущество. Вы не поделились подробностями, поэтому трудно угадать, чего вы хотите достичь, но вы должны начать с чего-то вроде этого:

'costCentre' => [
self::HAS_ONE,
'CostCentre',
'guid_to',
'order' => 'id desc',
],

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

Некоторые примеры и пояснения вы можете найти в документации: https://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship

0

По вопросам рекламы [email protected]