fix: update profile editing

This commit is contained in:
2026-08-22 07:53:15 +03:30
parent cb494a933e
commit 65c4863f30
2 changed files with 52 additions and 26 deletions
@@ -4,6 +4,8 @@ namespace App\Http\Controllers\Account;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\EditProfilePostRequest; use App\Http\Requests\EditProfilePostRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
@@ -11,7 +13,8 @@ class EditProfileController extends Controller
{ {
public function index() public function index()
{ {
$user = Auth::user();
$user = Auth::user()->load(['comments.commentable', 'favorites.favoritable']);
return view('account.edit-profile.index', compact('user')); return view('account.edit-profile.index', compact('user'));
} }
@@ -20,12 +23,26 @@ class EditProfileController extends Controller
{ {
$user = Auth::user(); $user = Auth::user();
$user->name = $request['name']; // به‌روزرسانی فیلدها
$user->username = $request['username']; $user->first_name = $request->first_name;
$user->email = $request['email']; $user->last_name = $request->last_name;
$user->email = $request->email;
$user->username = $request->username;
if ($request->filled('password')) { if ($request->filled('password')) {
$user->password = Hash::make($request['password']); $user->password = Hash::make($request->password);
}
if ($request->hasFile('image')) {
if ($user->image) {
Storage::disk('public')->delete($user->image);
}
$path = $request->file('image')->store('avatars', 'public');
$user->image = $path;
} }
$user->save(); $user->save();
+15 -6
View File
@@ -22,26 +22,35 @@ class EditProfilePostRequest extends FormRequest
*/ */
public function rules(): array public function rules(): array
{ {
// دریافت آیدی کاربر از طریق سشن لاگین
$userId = auth()->id();
return [ return [
'name' => 'first_name' =>
[ [
'required', 'required',
'string', 'string',
'max:255' 'max:100'
],
'last_name' =>
[
'required',
'string',
'max:100'
], ],
'username' => 'username' =>
[ [
'required', 'required',
'string', 'string',
'max:255', 'max:50',
'unique:users,username,' . $user->id, 'unique:users,username,' . $userId,
], ],
'email' => [ 'email' => [
'required', 'required',
'email', 'email',
'max:255', 'max:150',
'unique:users,email,' . $user->id, 'unique:users,email,' . $userId,
], ],
'password' => 'password' =>