public function update(Request $request, AppMailer $mailer) { $user = Auth::user(); // Validate request $this->validate($request, ['email' => 'required|unique:users,email,' . $user->id, 'tel_no' => 'required_if:type,1|unique:users,tel_no,' . $user->id]); $message = 'Your account has been updated!'; // Email update if ($user->email != $request->email) { $user->email = $request->email; $user->verified = false; $user->generateConfirmationLink(); $mailer->sendEmailConfirmation($user, true); $message = $message . ' Please confirm your email.'; } // Phone update $user->tel_no = $request->tel_no; // Description update $user->description = $request->description; if ($request->file('image')) { //IMAGE STUFF //make timestamp and append username for filename $timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); $imageFile = Input::file('image'); $mime = "." . substr($imageFile->getMimeType(), 6); //move file to /public/images/ $filename = $timestamp . '-' . $user->username; $photoData = array('fileName' => $filename, 'mime' => $mime); $photo = Photo::create($photoData); $imageFile->move(public_path() . '/images/uploads/', $filename . $mime); //associate the image with the user $user->photo_id = $photo->id; $user->photo()->associate($photo); } $user->save(); session()->flash('message', $message); return Redirect::route('dashboard'); }