/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['name' => 'required|min:3', 'category_id' => 'required']); $venue = new Venue(); \DB::transaction(function () use($request, $venue) { $venue->name = $request->get('name'); $venue->category_id = $request->get('category_id'); $venue->city = $request->get('city'); $venue->latitude = $request->get('latitude'); $venue->longitude = $request->get('longitude'); $venue->address = $request->get('address'); $venue->country = $request->get('country'); $venue->zip = $request->get('zip'); $venue->number = $request->get('number'); $venue->email = $request->get('email'); $venue->website = $request->get('website'); if ($request->hasFile('logo') && $request->file('logo')->isValid()) { $venueLogo = $request->file('logo'); $uri = config('services.uploads')['venues-logos']; $path = public_path() . $uri; $this->createFolderIfNotExists($path); $destinationPath = $path; $fileName = "i" . $venue->id . "." . $venueLogo->getClientOriginalExtension(); $venueLogo->move($destinationPath, $fileName); \Log::debug(sprintf("New icon image has been uploaded to %s, under the name %s", $destinationPath, $fileName)); $venue->logo = $uri . $fileName; // I might not use it, since I can predict what the name is going to be! id.xx } $venue->save(); $venue->admins()->attach(auth()->user()); }); session()->flash('message', ['success', 'Successfully Added!']); return redirect(action('VenueController@index')); }