direction ? '<' : '>', $model->order) ->orderBy('order', $request->direction ? 'DESC' : 'ASC')->first(); if (!$tmp) { return back()->with('bo.error', trans('L\'ordre n\'a pas pu être modifié')); } $oldOrder = $model->order; $newOrder = $tmp->order; // * Silent update timestamps. $tmp->timestamps = false; $model->timestamps = false; $saveOk = false; // ! Fake value to prevent unique SQL key to trigger. $tmp->order = 4294967295; $saveOk = $tmp->saveQuietly(); $model->order = $newOrder; $saveOk = $model->saveQuietly() & $saveOk; $tmp->order = $oldOrder; $saveOk = $tmp->saveQuietly() & $saveOk; if (\in_array(IsCachedAsCollection::class, class_uses_recursive(\get_class($model)))) { $model::removeCached(); } if (!$saveOk) { throw ValidationException::withMessages([ 'error' => \trans('L\'ordre n\'a pas pu être modifié') ]); } Session::flash('bo.success', trans('L\'ordre a été modifié')); return back(); }); } }