/** * Handle the event. * * @param MerchantsWasCreated $event * @return void */ public function handle(MerchantsWasCreated $event) { $event->request->merge(array('merchant_id' => $event->merchant_id, 'outlet_no' => md5($event->merchant_id))); $restaurant = $this->restaurant->create($event->request->all()); $this->outlet->create($event->request->all()); foreach ($event->request->cuisine_id as $key => $value) { $this->restaurantCuisineInterface->create(['restaurant_id' => $restaurant->id, 'cuisine_id' => $value]); } return true; }
/** * Display merchant profile page. * * @return View */ public function index() { $merchant_id = Auth::user()->id; $restaurant = $this->restaurant->getByAttributes(['merchant_id' => $merchant_id], false); $selected_cuisines = $this->restaurantCuisine->getByAttributesWithRelations(['restaurant_id' => $restaurant->id], ['cuisine'])->toArray(); $cuisines_id = array_map(function ($structure) { return $structure['cuisine']['id']; }, $selected_cuisines); $data = array('merchant' => $this->merchant->getById($merchant_id), 'restaurant' => $restaurant, 'snapshot' => $this->snapshot->getByAttributes(['merchant_id' => $merchant_id]), 'outlet' => $this->outlet->getByAttributes(['merchant_id' => $merchant_id, 'main' => 1], false), 'outlets' => $this->outlet->getByAttributes(['merchant_id' => $merchant_id, 'main' => 0]), 'restaurant_cuisine' => $selected_cuisines, 'cuisines' => $this->cuisine->getAll(), 'cuisines_id' => $cuisines_id); return view('merchant.profile', $data); }
/** * Edit an merchant profile restaurant. * * @param integer $id * @param Outlet $request * @return Redirect */ public function update($id, RestaurantRequest $request) { if ($this->restaurant->updateById($id, $request->all())) { foreach ($request->res_cuisine as $key => $value) { if (!$this->restaurantCuisine->getByAttributes(['restaurant_id' => $id, 'cuisine_id' => $value])) { $this->restaurantCuisine->create(['restaurant_id' => $id, 'cuisine_id' => $value]); } } return redirect('merchant-profile')->with('message', 'Successfully updated.'); } return redirect('merchant-profile')->withInput(); }