Для получения полного доступа
зарегистрируйтесь.

ElisDN    22   5 062


Видимо, пользователь решил о себе ничего не говорить.
  • PHP, Yii, Yii2, Symfony
  • Зарегистрирован 5 лет назад
Профиль завершён на 50 %
50 %

Часто из поля модели мы передаём массив идентификаторов привязанных через MANY-TO-MANY категорий, чтобы в форме для редактирования выводить их чекбоксами. В контроллере как-то надо потом определить на основе пришедшего из чекбоксов массива, какие категории добавились и какие удалились, чтобы соответственно добавить или удалить связи в промежуточной таблице. На помощь придёт array_diff:

$idsForCreating = array_diff($newIds, $oldIds);

$idsForRemoving = array_diff($oldIds, $newIds);

ActiveQuery удобен для построения кастомных условий для поиска моделей. Нечаянно придумалась недокументированная возможность:

$query = Comment::find()->notActive()->forPost($postId);

// Mark all as published:
Comment::updateAll(['status' => Comment::STATUS_ACTIVE], $query->where, $query->params);

// Remove all:
Comment::deleteAll($query->where, $query->params);