예제 #1
0
 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]);
 }
예제 #2
0
 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]);
 }
예제 #3
0
 /**
  * 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'));
 }