voskobovich/yii2-many-to-many-behavior

Подскажите пожалуйста как решить проблему

jb-studio opened this issue · 2 comments

Здравствуйте!
Если не сложно подскажите как решить проблемку.

У меня есть таблицы Profile (там хранятся данные пользователя), Countries (таблица с названием стран и id), Country_to_user (связь между таблицей Profile и Countries)

Пытаюсь установить связь

[ 'class' => \voskobovich\behaviors\ManyToManyBehavior::className(), 'relations' => [ 'countries' => 'countries', ], ],

public function getCountries() { return $this->hasMany(Countries::className(), ['id' => 'country_id']) ->viaTable('country_to_user', ['user_id' => 'user_id']); }

Сохранение работает только сохраняется user_id не тот что нужно
В таблице Profile есть просто id а есть user_id
http://joxi.ru/Vrwpkq6IKvzqgm
и при сохранении, сохраняется id, а нужно чтоб user_id
Подскажите пожалуйста как это можно сделать? Заранее спасибо!

Вот так лучше не делать 'countries' => 'countries'. Лучше переименовать в 'country_ids' => 'countries'.
Поведение сохранит то, что будет отправлено с формы.
Например:

Связать Profile(123) со списком Country(4,5,6,7)
123 => [4,5,6,7]

Настраиваете связь в профиле, а с формы приходит массив pk стран [4,5,6,7].

Спасибо за подсказку! Разобрался