/** * Display a listing of the resource. * * @param Request $request * @param integer|null $id * @return Datatables */ public function index(Request $request, $id = null) { // query if (is_null($id)) { $pages = Page::with('category'); } else { $pages = PageCategory::findOrFail($id)->pages(); } $pages->select(['id', 'category_id', 'title', 'is_publish', 'created_at']); // if is filter action if ($request->has('action') && $request->input('action') === 'filter') { $pages->filter($request); } // urls $addUrls = $this->urls; if (!is_null($id)) { $this->relationUrls['edit_page']['id'] = $id; $this->relationUrls['edit_page']['model'] = config('laravel-page-module.url.page'); $this->relationUrls['show']['id'] = $id; $this->relationUrls['show']['model'] = config('laravel-page-module.url.page'); $addUrls = array_merge($addUrls, $this->relationUrls); } $addColumns = ['addUrls' => $addUrls, 'status' => function ($model) { return $model->is_publish; }]; $editColumns = ['created_at' => function ($model) { return $model->created_at_table; }, 'title' => function ($model) { return $model->title_uc_first; }, 'category.name' => function ($model) { return $model->category->name_uc_first; }]; $removeColumns = ['is_publish', 'category_id']; return $this->getDatatables($pages, $addColumns, $editColumns, $removeColumns); }
/** * Show the form for editing the specified resource. * * @param integer|Page $firstId * @param integer|null $secondId * @return \Illuminate\Http\Response */ public function edit($firstId, $secondId = null) { $operation = 'edit'; $page = is_null($secondId) ? $firstId : $secondId; if (is_null($secondId)) { return view(config('laravel-page-module.views.page.edit'), compact('page', 'operation')); } $page_category = PageCategory::findOrFail($firstId); return view(config('laravel-page-module.views.page.edit'), compact('page', 'page_category', 'operation')); }
/** * get roles with query * * @param Request $request * @return \Illuminate\Http\Response */ public function models(Request $request) { return PageCategory::where('name', 'like', "%{$request->input('query')}%")->get(['id', 'name'])->map(function ($item, $key) { $item->name = $item->name_uc_first; return $item; }); }