route()->parameterNames); $className = Str::ucfirst(Str::lower($params->get($params->count() - 2))); $className = "\\App\\Models\\$className"; if (!class_exists($className)) { throw new \RuntimeException("The $className class doesn't exist."); } /** @var \Illuminate\Database\Eloquent\Model|null */ $model = $className::where('id', $model->id)->first(); if (!$model) { return redirect()->back()->with('error', trans('crud.messages.order_not_changed')); } return DB::transaction(function () use ($request, $className, $model) { /** @var \Illuminate\Database\Eloquent\Model|null */ $tmp = $className::where('order', $request->direction ? '<' : '>', $model->order) ->orderBy('order', $request->direction ? 'DESC' : 'ASC')->first(); if (!$tmp) { return redirect()->back()->with('error', trans('crud.messages.order_not_changed')); } $newOrder = $tmp->order; $tmp->order = $model->order; $model->order = $newOrder; $tmp->saveOrFail(); $model->saveOrFail(); return redirect()->back()->with('success', trans('crud.messages.order_changed')); }); } }