سلام برای ویرایش کاربر در قسمت پروفایل کاربر مشکل دارم
تو پنل ادمین اکیه ولی پروفایل کاربر هیچ اتفاقی نمیفته
روت ها
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
برای سمت پنل ادمین مشکلی ندارم برای هر یوزر اکیه
من میخام هر کاربر با یوزر خودش لاگین شد بتونه مشخصاتش رو به جز ایمیل ویرایش کنه
الان یوزر که لاگین هست مشکلی نداره روت هم اکیه
مشکل من اینه که بعد از ویرایش وقتی روی آپدیت میزنم پیام آپدیت شد میاد ولی تو دیتابیس تغییری رخ نمیده که نمیدونم مشکل از کجاست
مشکل دومم اینه وقتی روی ویرایش میزنم اطلاعات کاربر که لاگین کرده تو اینپوت نمایش نمیده طبق عکسی که فرستادم
خب الان مشکل این که اونجا نمایش داده نمیشه برای اینه که داده ای بهش ارسال نمیشه که توی value ها پر بشه
این باید حل بشه اول
اون مشکل رو هم من نمیدونم راستش، امیدوارم دوستان بهتر بهتون کمک کنن
@saman1111
برای ولیو ها پیشنهادی ندارید ؟
چیزی که تو ادمین هست و نمایش میده ولی چرا اینجا نمایش نمیده
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟