Есть полезное расширение la-haute-societe/yii2-save-relations-behavior
Код: Выделить всё
$group = new Group();
$groups->users = [1,3];
....
/**
* @return \yii\db\ActiveQuery
*/
public function getGroupUsers()
{
return $this->hasMany(GroupUsers::className(), ['group_id' => 'id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getUsers()
{
return $this->hasMany(User::className(), ['id' => 'user_id'])->via('groupUsers')->orderBy('surname');
}
Данное равширение прекрасно сохраняет данные в связанной таблице если данные существуют, но если нет то пытается создать польователя и соотвественно ругается что пользотель не может быть создан т.к. не проходит валиацию. Навешивание кастомных правел не работает т.к. поле не публичное и не входит в список аттриутов модели и перехватвается самим расширением. Как быть если хочу чтобы мне валидация говорила что не могу добавить в группу пользователя который не существует.