Задать вопрос
@Kop3t3

Yii2 как проделать дырку в id модели?

Доброго времени суток!
Перевожу приложение на yii2. В базе данных есть таблица "pipes", в которой находится список продукции, сортированный по id записи (например:
1 | Тонкий шланг
2 | Шланг среднего диаметра
3 | Толстый шланг
)
Иногда требуется добавить ещё несколько записей, приведя её к такому виду:
1 | Тонкий шланг
2 | Тонкий армированный шланг
3 | Шланг среднего диаметра
4 | Шланг среднего диаметра, водогазопроводный
5 | Толстый шланг
В оригинале я делал sql-запрос, который "пробивал" дырку в списке id:
UPDATE TABLE `pipes` SET id=id+1 WHERE id > 2;
Можно ли в yii2 сделать так же через модели?
Например, такой вариант:
$models = Pipes::find()->where("id > 2")->all();
foreach ($models as $model){
$model->id++;
$model->save();
}

Однако, это порождает целую кучу запросов. Есть более универсальный вариант?
  • Вопрос задан
  • 374 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@sunrails
Добавьте поле sort_order в таблицу и перестраивайте сортировку как душе угодно. А проделывать "дырку" совсем плохая идея.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы