К сожалению, в yii2 пока нет синхронизации связей.
$orderKeys = [];
$relatedKeys = [];
foreach ($orders as $model) {
$orderKeys[] = $model->getPrimaryKey();
}
// получаем айдишники уже связанных заказов
foreach ($user->getOrders()->all() as $model) {
$relatedKeys[] = $model->getPrimaryKey();
}
// удаляем отсутствующие в $orderKeys связи
foreach (array_diff($relatedKeys, $orderKeys) as $id) {
$model = Order::findOne($id);
$user->unlink('orders', $model);
}
// добавляем новые связи
foreach (array_diff($orderKeys, $relatedKeys) as $id) {
$model = Order::findOne($id);
$user->link('orders', $model);
}