fix : update user profile edit in user side

This commit is contained in:
2026-08-20 17:00:47 -07:00
parent edacb3f22c
commit 737e8a6b5c
6 changed files with 128 additions and 3 deletions
@@ -3,14 +3,70 @@
namespace App\Http\Controllers\Account; namespace App\Http\Controllers\Account;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\File;
use Illuminate\Http\Request;
use function Symfony\Component\String\s;
class ProfileController extends Controller class ProfileController extends Controller
{ {
//
public function index() public function index()
{ {
$user = auth()->user(); $user = auth()->user();
return view('account.profile', compact('user')); return view('account.profile', compact('user'));
} }
public function updateImage(Request $request)
{
$request->validate([
'image' => [
'required',
'image',
'mimes:jpg,jpeg,png,webp',
'max:2048',
],
]);
$user = auth()->user();
if ($request->hasFile('image')) {
$image = $request->file('image');
$extension = $image->extension();
$imageName = $user->id . '_' . rand(11111, 99999) . '_' . time() . '.' . $extension;
$path = $image->storeAs('user_profile', $imageName, 'public'
);
if ($user->file) {
$user->file->update([
'name' => $imageName,
'original_name' => $image->getClientOriginalName(),
'path' => $path,
'extension' => $extension,
'size' => $image->getSize(),
]);
} else {
$file = File::create([
'name' => $imageName,
'original_name' => $image->getClientOriginalName(),
'path' => $path,
'extension' => $extension,
'size' => $image->getSize(),
]);
$user->update([
'file_id' => $file->id,
]);
}
}
return back()->with('success', 'عکس پروفایل با موفقیت تغییر کرد.');
}
} }
@@ -33,4 +33,6 @@ class DashboardController extends Controller
return view('admin.dashboard', compact('flightsCount', 'usersCount', return view('admin.dashboard', compact('flightsCount', 'usersCount',
'bookingsCount', 'indexPageCont' , 'visits')); 'bookingsCount', 'indexPageCont' , 'visits'));
} }
} }
@@ -7,7 +7,24 @@
<img src="{{ asset('assets/img/account/user.jpg') }}" alt=""> <img src="{{ asset('assets/img/account/user.jpg') }}" alt="">
@endif @endif
<button type="button" class="profile-img-btn"><i class="far fa-camera"></i></button> <button type="button" class="profile-img-btn"><i class="far fa-camera"></i></button>
<input type="file" class="profile-img-file"> <form
action="{{ route('account.profile.image.update') }}"
method="POST"
enctype="multipart/form-data"
id="profile-image-form"
>
@csrf
<input
type="file"
name="image"
class="profile-img-file"
id="profile-img-file"
accept="image/jpeg,image/png,image/webp"
hidden
>
</form>
</div> </div>
<h4>{{ getUserFullName() }}</h4> <h4>{{ getUserFullName() }}</h4>
@@ -21,3 +38,29 @@
<li><a class="{{ activeAccountSidebar('auth.logout') }}" href="{{route('auth.logout')}}"><i class="far fa-sign-out"></i> خروج</a></li> <li><a class="{{ activeAccountSidebar('auth.logout') }}" href="{{route('auth.logout')}}"><i class="far fa-sign-out"></i> خروج</a></li>
</ul> </ul>
</div> </div>
<script>
document.addEventListener('DOMContentLoaded', function () {
const button = document.querySelector('.profile-img-btn');
const fileInput = document.querySelector('#profile-img-file');
const form = document.querySelector('#profile-image-form');
if (button && fileInput && form) {
button.addEventListener('click', function () {
fileInput.click();
});
fileInput.addEventListener('change', function () {
if (this.files.length > 0) {
form.submit();
}
});
}
});
</script>
@@ -107,6 +107,28 @@
</div> </div>
<p class="flight-type">
<i class="far fa-plane"></i>
@switch($flight->flight_type)
@case(0)
رفت
@break
@case(1)
برگشت
@break
@case(2)
رفت و برگشت
@break
@default
-
@endswitch
</p>
<p class="flight-date"> <p class="flight-date">
<i class="far fa-calendar-days"></i> <i class="far fa-calendar-days"></i>
{{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }} {{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }}
@@ -38,7 +38,7 @@
<input <input
type="text" type="text"
name="journey-date" name="journey-date"
class="form-control date-picker journey-date" class="form-control journey-date"
value="{{ $item->departure_time->toJalali()->format('Y/m/d') }}" value="{{ $item->departure_time->toJalali()->format('Y/m/d') }}"
readonly readonly
> >
+2
View File
@@ -35,6 +35,8 @@ Route::prefix('account')->name('account.')->middleware('auth')->group(function (
Route::get('profile', [ProfileController::class, 'index'])->name('profile'); Route::get('profile', [ProfileController::class, 'index'])->name('profile');
Route::post('profile/image', [ProfileController::class, 'updateImage']) ->name('profile.image.update');
Route::prefix('edit-profile')->name('edit-profile.')->controller(EditProfileController::class)->group(function () { Route::prefix('edit-profile')->name('edit-profile.')->controller(EditProfileController::class)->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');