/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // $this->validate($request, ['offer_name' => 'required', 'start_date' => 'required', 'end_date' => 'required']); $offer = new Offer(); $offer->offer_name = $request->offer_name; $offer->description = $request->description; $offer->offer_type = $request->offer_type; $offer->amount = $request->amount; //dd($request); if ($request->has('active')) { $offer->active = $request->active; } $start_date = Carbon::createFromFormat('d-n-Y', $request->start_date); $end_date = Carbon::createFromFormat('d-n-Y', $request->end_date); $offer->start = $start_date->toDateTimeString(); $offer->end = $end_date->toDateTimeString(); $offerfor = $request->offerfor; //dd($offerfor); $offer->save(); //dd($offer); if ($offerfor == 'product') { $productIds = $request->products; foreach ($productIds as $id) { $product = Product::find($id); $offer->products()->attach($offer->id, ['offerable_id' => $id, 'offerable_type' => 'App\\Product']); } } elseif ($offerfor == 'category') { $categoryIds = $request->categories; foreach ($categoryIds as $id) { $category = Category::find($id); $offer->categories()->attach($offer->id, ['offerable_id' => $id, 'offerable_type' => 'App\\Category']); } } elseif ($offerfor == 'brand') { $brandIds = $request->brands; foreach ($brandIds as $id) { $brand = Category::find($id); $offer->brands()->attach($offer->id, ['offerable_id' => $id, 'offerable_type' => 'App\\Brand']); } } return redirect()->route('admin.offers'); }