ProfilesController.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\User;
  4. use Illuminate\Http\Request;
  5. use Intervention\Image\Facades\Image;
  6. class ProfilesController extends Controller
  7. {
  8. public function index(User $user)
  9. {
  10. $follows = (auth()->user()) ? auth()->user()->following->contains($user->id) : false;
  11. return view('profiles.index', compact('user', 'follows'));
  12. }
  13. public function edit(User $user)
  14. {
  15. $this->authorize('update', $user->profile);
  16. return view('profiles.edit', compact('user'));
  17. }
  18. public function update(User $user)
  19. {
  20. $this->authorize('update', $user->profile);
  21. $data = request()->validate([
  22. 'title' => 'required',
  23. 'description' => 'required',
  24. 'url' => 'url',
  25. 'image' => '',
  26. ]);
  27. if (request('image')){
  28. $imagePath = request('image')->store('profile', 'public');
  29. $image = Image::make(public_path("storage/{$imagePath}"))->fit(1000, 1000);
  30. $image->save();
  31. $imageArray = ['image' => $imagePath];
  32. }
  33. auth()->user()->profile->update(array_merge(
  34. $data,
  35. $imageArray ?? []
  36. ));
  37. return redirect("/profile/{$user->id}");
  38. }
  39. }