Example #1
0
 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');
 }