/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['title' => 'required|max:255', 'note' => 'string', 'month' => 'required|integer|min:1|max:12', 'day' => 'required|integer|min:1|max:31', 'cost' => 'required|regex:/([0-9],)+[0-9]{2,}/|min:0', 'currency' => 'required|in:hrk,usd,eur', 'exchange_rate' => 'required|numeric|min:0', 'active' => 'boolean', 'client_id' => 'required|exists:clients,id', 'category_id' => 'required|exists:categories,id']); $client = Client::find($request->get('client_id')); $category = Category::find($request->get('category_id')); $service = new Service(); $service->title = $request->get('title'); $service->note = $request->get('note'); $service->month = $request->get('month'); $service->day = $request->get('day'); $service->cost = convert_integer($request->get('cost')); $service->currency = $request->get('currency'); $service->exchange_rate = $request->get('exchange_rate'); $service->active = $request->get('active', false); $service->client()->associate($client); $service->category()->associate($category); $service->save(); event(new ServiceWasCreated($service)); flash()->success('Service created!'); return redirect()->route('services.index'); }