diff --git a/app/Http/Controllers/Account/EditProfileController.php b/app/Http/Controllers/Account/EditProfileController.php new file mode 100644 index 0000000..7cad266 --- /dev/null +++ b/app/Http/Controllers/Account/EditProfileController.php @@ -0,0 +1,40 @@ +user(); + $provinces = Province::with('cities')->get(); + return view('account.edit-profile' , compact('title','user', 'provinces')); + } + + public function update(EditProfileUpdateRequest $request) + { + $inputs = $request->only([ + 'first_name', + 'last_name', + 'email', + 'mobile', + 'city_id', + 'province_id' + ]); + + + Auth::user()->update($inputs); + + return redirect()->back(); + } + +} diff --git a/app/Http/Requests/EditProfileUpdateRequest.php b/app/Http/Requests/EditProfileUpdateRequest.php new file mode 100644 index 0000000..9180b7b --- /dev/null +++ b/app/Http/Requests/EditProfileUpdateRequest.php @@ -0,0 +1,60 @@ +|string> + */ + public function rules(): array + { + return [ + 'first_name' => [ + 'required', + 'min:2', + 'max:64', + 'persian_alpha' + ], + 'last_name' => [ + 'required', + 'min:3', + 'max:64', + 'persian_alpha' + ], + 'mobile' => [ + 'required', + 'string', + 'ir_mobile:zero' + ], + 'email' => [ + 'required', + 'email', + 'max:150', + 'unique:App\Models\User,email,' . auth()->id() + ], + 'province_id' => [ + 'nullable', + 'exists:provinces,id' + ], + 'city_id' => [ + 'nullable', + 'exists:cities,id' + ], + + ]; + } +} diff --git a/resources/views/account/edit-profile.blade.php b/resources/views/account/edit-profile.blade.php new file mode 100644 index 0000000..f4579a8 --- /dev/null +++ b/resources/views/account/edit-profile.blade.php @@ -0,0 +1,136 @@ +@extends('account.layouts.app') + +@section('account-content') +
+ + @if (session('success')) +
+
{{ session('success') }}
+
+ @endif + +
+ +
+ +
+ +
+
+@endsection diff --git a/resources/views/account/layouts/sidebar.blade.php b/resources/views/account/layouts/sidebar.blade.php index c7ad780..b391cb2 100644 --- a/resources/views/account/layouts/sidebar.blade.php +++ b/resources/views/account/layouts/sidebar.blade.php @@ -26,7 +26,7 @@
  • علاقه مندی های من
  • -
  • تنظیمات
  • +
  • ویرایش حساب کاربری
  • خروج
  • diff --git a/routes/web.php b/routes/web.php index ede8fa7..8270e56 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ controller(TourController::class)->name('tours.')->group Route::prefix('account')->name('accounts.')->middleware('auth')->group(function (){ Route::get('/profile' ,[ProfileController::class , 'index'])->name('profile'); + + Route::prefix('edit-profile')->name('edit-profile.')->controller(EditProfileController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'update')->name('update'); + }); + });