public function updateOrder(Request $request, $id) { $category = Category::findOrFail($id); $validator = Validator::make($request->all(), ['link_ids' => 'required|array|exists:links,id']); if ($validator->fails()) { return response()->json(['success' => false, 'msg' => $validator->errors()->all()]); } $link_ids = $request->input('link_ids'); $order = 0; $category_links = $category->links(); foreach ($link_ids as $link_id) { ++$order; $category_links->updateExistingPivot($link_id, ['order' => $order]); } return response()->json(['success' => true]); }
public function viewHomeParams() { $links = empty($this->category_id) ? collect([]) : Category::findOrFail($this->category_id)->links; return array_merge(parent::viewHomeParams(), ['name' => $this->name, 'links' => $links]); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $category = Category::findOrFail($request->input('id')); if ($category->type != Category::LINK) { abort(404); } $redirect = redirect(adminUrl('link-categories/{id}/edit', ['id' => $category->id])); $this->validateMultipleLocaleData($request, ['name', 'slug', 'description'], ['name' => 'required', 'slug' => 'required|unique:category_translations,slug,' . $category->id . ',category_id'], $data, $successes, $fails, $old); if (count($successes) <= 0 && count($fails) > 0) { return $redirect->withErrors($fails[0]); } $parent_id = intval($request->input('parent'), 0); if ($parent_id != 0) { $validator = Validator::make($request->all(), ['parent' => 'sometimes|exists:categories,id,type,' . Category::LINK]); if ($validator->fails()) { return $redirect->withErrors($validator); } } $category->parent_id = $parent_id != 0 && $parent_id !== $category->parent_id ? $parent_id : null; foreach ($successes as $locale) { $transData = $data[$locale]; $trans = $category->translateOrNew($locale); $trans->name = $transData['name']; $trans->slug = $transData['slug']; $trans->description = $transData['description']; } if ($category->save() === false) { return $redirect->withErrors([trans('error.database_update')]); } return redirect(adminUrl('link-categories')); }