feat:complete editprofile for dashboard

This commit is contained in:
2026-08-18 12:49:54 +03:30
parent 7233f097d9
commit 7e2a679d76
4 changed files with 411 additions and 0 deletions
@@ -0,0 +1,50 @@
<?php
namespace App\Http\Controllers\Account;
use App\Http\Controllers\Controller;
use App\Http\Requests\EditProfilePostRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class EditProfileController extends Controller
{
public function index()
{
$user = auth()->user();
return view('account.setting', compact('user'));
}
public function post(EditProfilePostRequest $request)
{
$user = auth()->user();
$inputs = $request->only([
'first_name',
'last_name',
'mobile',
'email',
'province_id',
'city_id',
]);
if ($request->filled('new_password')) {
$inputs['password'] = Hash::make(
$request->input('new_password')
);
}
$user->update($inputs);
return redirect()
->back()
->with('success', 'پروفایل با موفقیت بروزرسانی شد.');
}
}
@@ -0,0 +1,61 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class EditProfilePostRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'first_name' => [
'required',
'persian_alpha',
'min:2',
'max:100',
],
'last_name' => [
'required',
'persian_alpha',
'min:3',
'max:100',
],
'mobile' => [
'required',
'ir_mobile:zero',
Rule::unique('users', 'mobile')
->ignore(auth()->id()),
],
'email' => [
'required',
'email',
'max:150',
Rule::unique('users', 'email')
->ignore(auth()->id()),
],
'current_password' => [
'nullable',
'current_password',
],
'new_password' => [
'nullable',
'string',
'min:6',
'max:255',
'confirmed',
],
];
}
}