سلام برای ویرایش کاربر در قسمت پروفایل کاربر مشکل دارم
تو پنل ادمین اکیه ولی پروفایل کاربر هیچ اتفاقی نمیفته
روت ها
Route::get('/' , 'IndexController@index')->name('profile');
Route::get('/' , 'IndexController@edit')->name('profile.edit');
Route::patch('/' , 'IndexController@update')->name('profile.update');
indexcontroller
<?php
namespace App\Http\Controllers\Profile;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class IndexController extends Controller
{
public function index()
{
return view('profile.index');
}
/**
* Show the form for editing the specified resource.
*
* @param User $user
* @return User
*/
public function edit(User $user)
{
$this->seo()->setTitle('ویرایش کاربر');
return view('profile.index' , compact('user'));
}
/**
* Update the specified resource in storage.
*
* @param Request $request
* @param User $user
* @return void
*/
public function update(Request $request, User $user)
{
$data = $request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->ignore($user->id)],
]);
if(! is_null($request->password)) {
$request->validate([
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
$data['password'] = $request->password;
}
$user->update($data);
alert()->success('اطلاعات شما با موفقیت ویرایش شد');
return redirect(route('profile.index'));
}
}
ویو ویرایش پروفایل
@extends('profile.layout')
@section('main')
<div class="row">
<div class="col-lg-12">
<div class="shadow bg-dark">
<div class="card-header">
<h3 class="card-title text-center">فرم ویرایش اطلاعات</h3>
</div>
<!-- /.card-header -->
<!-- form start -->
<form class="form-horizontal" action="{{ route('profile.update', ['user' => $user->id]) }}" method="POST">
@csrf
@method('PATCH')
<div class="card-body">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">نام کاربری</label>
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" id="inputEmail3" placeholder="نام کاربری جدید را وارد کنید" value="{{ $user->name }}">
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">ایمیل</label>
<input type="email" name="email" class="form-control" id="inputEmail3" disabled value="{{ $user->email }}" placeholder="ایمیل قابل ویرایش نمی باشد">
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">پسورد</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" id="inputPassword3" placeholder="پسورد را وارد کنید">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">تکرار پسورد</label>
<input type="password" name="password_confirmation" class="form-control @error('password') is-invalid @enderror" id="inputPassword3" placeholder="پسورد را وارد کنید">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-info">ویرایش اطلاعات</button>
</div>
<!-- /.card-footer -->
</form>
</div>
</div>
</div>
@endsection
و یه مورد دیگه وقتی صفحه ویرایش نمایش میده
نام کاریری قبل و ایمیل قبل نمایش نمیده

سلام
شما چرا روت هاتون یه آدرس دارن ؟! چجوری هم به ایندکس میرین هم به ادیت ؟
آی دی کاربری که میخوای ادیت بشه رو کجا میگیرین ؟ توی مسیرتون که آی دی نیست
شاید پاسخ شما همینجا باشد
@saman1111
سلام
به چه صورت باید بنویسم ؟
چون قبلا ایندکس تعریف شده بود برای صفحه پروفایل از قبل موند
شما فقط بگین الان آی دی یوزری که قراره ادیت بشه رو کجا میدید ؟
مثلا 10 تا یوزر دارین و میخواین شماره 3 رو ادیت کنید
باید مشخصات شماره 3 رو بیاره دیگه ؟ اون رو کجا تعیین می کنید ؟
@saman1111
کل کدهارو فرستادم اینجا
<form class="form-horizontal" action="{{ route('profile.update', ['user' => $user->id]) }}" method="POST">@saman1111
برای سمت پنل ادمین مشکلی ندارم برای هر یوزر اکیه
من میخام هر کاربر با یوزر خودش لاگین شد بتونه مشخصاتش رو به جز ایمیل ویرایش کنه
اطلاعات کاربر فعلی رو با
auth()->user();
بگیرید و پاس بدید به ویو ببینید نتیجش چی میشه
الان یوزر که لاگین هست مشکلی نداره روت هم اکیه
مشکل من اینه که بعد از ویرایش وقتی روی آپدیت میزنم پیام آپدیت شد میاد ولی تو دیتابیس تغییری رخ نمیده که نمیدونم مشکل از کجاست
مشکل دومم اینه وقتی روی ویرایش میزنم اطلاعات کاربر که لاگین کرده تو اینپوت نمایش نمیده طبق عکسی که فرستادم
خب الان مشکل این که اونجا نمایش داده نمیشه برای اینه که داده ای بهش ارسال نمیشه که توی value ها پر بشه
این باید حل بشه اول
اون مشکل رو هم من نمیدونم راستش، امیدوارم دوستان بهتر بهتون کمک کنن
@saman1111
برای ولیو ها پیشنهادی ندارید ؟
چیزی که تو ادمین هست و نمایش میده ولی چرا اینجا نمایش نمیده