/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { $router->bind('article', function ($value) { return $this->getArticle()->where('slug', $value)->firstOrFail(); }); $router->bind('cong-ty', function ($value) { return \App\Company::where('slug', $value)->firstOrFail(); }); $router->bind('thiet-ke-thi-cong', function ($value) { return $this->designModel->getDesigns()->where('designs.slug', $value)->firstOrFail(); }); $router->bind('house', function ($value) { return $this->houseModel->getHouses()->where('houses.slug', $value)->firstOrFail(); }); $router->bind('company', function ($value) { return \App\Company::where('slug', $value)->firstOrFail(); }); $router->bind('project', function ($value) { return $this->projectModel->getProjects()->where('projects.slug', $value)->firstOrFail(); }); $router->model('owner', 'App\\House'); $router->model('agency', 'App\\House'); $router->model('message', 'App\\Message'); parent::boot($router); }
/** * Hiển thị 10 bài viết mới nhất ở sidebar (layout) * * @return void */ public function composeSidebar() { view()->composer('_sidebar', function ($view) { // recommend $view->with('houseSaleRecommend', $this->houseModel->getHouses()->saleType(SaleTypeOptions::BAN)->first()); $view->with('houseRentRecommend', $this->houseModel->getHouses()->saleType(SaleTypeOptions::CHO_THUE)->first()); $view->with('houseProjectRecommend', $this->projectModel->getProjects()->first()); $view->with('designRecommend', $this->designModel->getDesigns()->first()); }); }
/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id, DesignPreviewCreator $preview) { $input = Input::except('previewImageData'); $design = Design::findOrFail($id); $design->fill($input)->save(); $preview->create($design->id, Input::get('previewImageData')); return json_encode($design); }
/** * About us page * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function about(Request $request) { $data['designer_number'] = Designer::count(); $data['design_number'] = Design::count(); $data['place_number'] = Place::count(); $data['story_number'] = Story::count(); $data['tag_number'] = Tag::count(); $data['user_number'] = User::count(); $data['city_number'] = City::has('places')->orHas('designers')->count(); return view('pages.about', $data); }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show(Design $design) { switch ($design->category) { case Category::KIEN_TRUC: $categoryUri = 'kien-truc'; break; case Category::NOI_THAT: $categoryUri = 'noi-that'; break; case Category::THI_CONG: $categoryUri = 'thi-cong'; break; } $others = $this->designModel->getDesigns()->where('category', $design->category)->where('sub_category', $design->sub_category)->where('designs.id', '<>', $design->id)->get(); $preview = Design::where('category', $design->category)->where('sub_category', $design->sub_category)->where('id', '<', $design->id)->orderBy('id', 'desc')->first(); $next = Design::where('category', $design->category)->where('sub_category', $design->sub_category)->where('id', '>', $design->id)->orderBy('id', 'asc')->first(); $contact = User::join('profiles', 'users.id', '=', 'profiles.user_id')->where('user_id', 1)->first(); return view('front.designs.show', compact('design', 'others', 'contact', 'preview', 'next', 'categoryUri')); }
/** * Check Unique Url * * @param Request $request * @return string Jquery Validation plugin only expect returns value string true or false */ public function checkUniqueUrl(Request $request, $type, $id = null) { if ($request->ajax()) { $title = $request->input('title'); switch ($type) { case 'house': $resource = House::where('title', $title); break; case 'project': $resource = Project::where('title', $title); break; case 'design': $resource = Design::where('title', $title); break; } if (!is_null($id)) { $resource = $resource->where('id', '<>', $id); } return 0 == $resource->count() ? 'true' : 'false'; } }
/** * Remove the specified resource from storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id) { $this->validate($request, ['action' => 'string|in:delete,restore,force_delete']); $design = Design::withTrashed()->find($id); if (empty($design)) { abort(404); } if ($request->user()->cannot('delete-design', $design)) { abort(403); } switch ($request->input('action')) { case 'restore': $design->restoreWithRelationships(); break; case 'force_delete': $design->forceDeleteWithRelationships(); break; default: $design->deleteWithRelationships(); } }
/** * Remove the specified resource from storage. * * @param Design $design * @return Response */ public function destroy(Design $design) { foreach ($design->images as $image) { $this->delete($image); } $design->delete(); return redirect('quan-tri/thiet-ke-thi-cong/create')->with('flash_message', Lang::get('system.destroy')); }