Сохранение связанных данных many-to-many. saveRelationBehaviors
Есть 3 таблицы
Order{id: primary key, address: string}Product{id: primary key, price: integer}ProductOrder{product_id: primary key, order_id: primary key, product_count: integer}
Для сохранения зависимостей использую расширение saveRelationBehaviors
На входе при создании нового заказа получаю массив наподобие такого:
'Order' => [
'address' => [
'title' => 'Улан-Удэ, улица Павлова, 22'
'latitude' => '51.80612'
'longitude' => '107.61796'
]
'productOrders' => [
0 => [
'product_id' => '1'
'product_count' => '10'
]
]
Настройка отношений
'saveRelation' => [
'class' => SaveRelationsBehavior::class,
'relations' => [
'productOrders',
]
],
Вопрос 1: При таком сохранении у меня вылетает ошибка "Отсутствует параметр Order ID". В принципе согласен, в массиве он явно не указан, но вреде как расширение должно само вставлять этот параметр?
Вопрос 2:
Правильно ли я вообще использую это расширение? Или правильней было бы использовать отношение products через таблицу ProductOrders. В этом случае как правильно написать конфиг поведения, чтобы подхватывался параметр product_count из массива POST?
**Примечание:
- В rules нужные атрибуты выставлены в
safe - При обновлении все нормально срабатывает
Сколняюсь больше ко второму варианту, но чем черт не шутит, пока админ спит...