/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request) { $group = new group(); $group->name = $request->input('name'); $group->body = $request->input('body'); $group->group_type = $request->input('group_type'); if ($request->get('address')) { $group->address = $request->input('address'); if (!$group->geocode()) { flash()->error(trans('messages.address_cannot_be_geocoded')); } else { flash()->info(trans('messages.ressource_geocoded_successfully')); } } if ($group->isInvalid()) { // Oops. return redirect()->action('GroupController@create')->withErrors($group->getErrors())->withInput(); } $group->save(); // handle cover if ($request->hasFile('cover')) { Storage::disk('local')->makeDirectory('groups/' . $group->id); Image::make($request->file('cover'))->widen(800)->save(storage_path() . '/app/groups/' . $group->id . '/cover.jpg'); Image::make($request->file('cover'))->fit(300, 200)->save(storage_path() . '/app/groups/' . $group->id . '/thumbnail.jpg'); } // make the current user a member of the group $membership = \App\Membership::firstOrNew(['user_id' => $request->user()->id, 'group_id' => $group->id]); $membership->notification_interval = 60 * 24; // default to daily interval $membership->membership = \App\Membership::MEMBER; $membership->save(); return redirect()->action('MembershipController@settings', [$group->id]); }