diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 534d7e3..82185c1 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -2,8 +2,10 @@ namespace App\Http\Controllers; +use App\Models\User; use Illuminate\Support\Str; use Illuminate\Http\Request; +use Intervention\Image\Laravel\Facades\Image; use Illuminate\Routing\Controllers\HasMiddleware; class ProfileController extends Controller implements HasMiddleware @@ -29,5 +31,23 @@ class ProfileController extends Controller implements HasMiddleware $request->validate([ "username" => ["required", "unique:users,username," . auth()->user()->id, "min:3", "max:16", "not_in:edit-profile"], ]); + + if ($request->pfp) { + $image = $request->file("pfp"); + $nameImage = Str::uuid() . "." . $image->extension(); + + $imageServer = Image::read($image); + $imageServer->cover(1000, 1000); + $imagePath = public_path("uploads/pfps") . "/" . $nameImage; + $imageServer->save($imagePath); + } + + // save changes + $user = User::find(auth()->user()->id); + $user->username = $request->username; + $user->pfp = $nameImage ?? auth()->user()->pfp ?? ""; + $user->save(); + + return redirect()->route("posts.index", $user->username); } } diff --git a/database/migrations/2024_08_23_013054_add_pfp_field_to_users_table.php b/database/migrations/2024_08_23_013054_add_pfp_field_to_users_table.php new file mode 100644 index 0000000..ccb4bfc --- /dev/null +++ b/database/migrations/2024_08_23_013054_add_pfp_field_to_users_table.php @@ -0,0 +1,28 @@ +string('pfp')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('pfp'); + }); + } +}; diff --git a/resources/views/profile/index.blade.php b/resources/views/profile/index.blade.php index 86591b0..9224dda 100644 --- a/resources/views/profile/index.blade.php +++ b/resources/views/profile/index.blade.php @@ -5,7 +5,7 @@ @section('content')
-
+ @csrf