/** * Уменьшение позиции группы категорий. * * @param $id * @return $this|\Illuminate\Http\RedirectResponse */ public function getDecreasePosition($id) { // Ищем группу $groupCategory = $this->findGroupCategory($id); // Группе перед - ставим позицию текущей группы, а сначала ищем её $orderPrev = $groupCategory->order - 1; $groupCategoryPrev = GroupsCategory::whereCompanyId($groupCategory->company_id)->where('order', '=', $orderPrev)->first(); // Если она существует, то делаем изменения, если нет - это последняя группа, изменения невозможны if ($groupCategoryPrev) { $groupCategoryPrev->order = $groupCategory->order; $groupCategoryPrev->save(); $groupCategory->order = $orderPrev; $groupCategory->save(); return redirect()->back()->with('success', 'Порядок успешно изменён.'); } return redirect()->back()->withErrors('Порядок не может быть изменён, это и так первая группа категорий.'); }
/** * Страница редактирования группы категорий. * * @param $id * @return \Illuminate\View\View */ public function getEdit($id) { // Ищем фирму по короткому названию $data['company'] = Company::whereShortTitle($this->companyName)->first(); // Ищем категорию $data['category'] = $this->findCategory($id); // Группы категорий $data['groups_categories'] = GroupsCategory::whereCompanyId($data['company']->id)->orderBy('title')->get(); return view('admin.companies.catalog.categories.edit', $data); }