@slip31

Как поменять порядок order?

Нужно менять порядок пунктов меню. Сортируются они полем 'order', который имеет в базе статус unique.
Нужно сделать функционал смены мест пунктов меню - пункт "контакт" был на втором месте, стал на первом. Решил в лоб сначала
public static function changeOrder($cur, $new) {
        if ((isset($cur)) && (isset($new)) && ($cur !== $new)) {
            $currentModel = parent::findOne($cur);
            $newModel = parent::findOne($new);                 
            $currentModel->order = $new;
            $newModel->order = $cur;
            if ($currentModel->save() && $newModel->save()) {
                echo 'works';
            } else {
                var_dump($currentModel->errors);
                var_dump($newModel->errors);
            }
        }
    }

Но, конечно, оно не сработало, так как при записи уже существует такой "order" и валидация не проходит. Как решать такие вещи? Через временную переменную?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы