راکت

ویرایش کاربر

10 پاسخ

سلام برای ویرایش کاربر در قسمت پروفایل کاربر مشکل دارم
تو پنل ادمین اکیه ولی پروفایل کاربر هیچ اتفاقی نمیفته

روت ها

        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
Paradox
Paradox
@paradox
ثبت پرسش جدید

پاسخ‌ها

10
Paradox
Paradox
@paradox

تخصص: در حال یادگیری

و یه مورد دیگه وقتی صفحه ویرایش نمایش میده
نام کاریری قبل و ایمیل قبل نمایش نمیده

ویرایش

saman
saman
@saman1111

سلام
شما چرا روت هاتون یه آدرس دارن ؟! چجوری هم به ایندکس میرین هم به ادیت ؟
آی دی کاربری که میخوای ادیت بشه رو کجا میگیرین ؟ توی مسیرتون که آی دی نیست

شاید پاسخ شما همین‌جا باشد

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@saman1111
سلام
به چه صورت باید بنویسم ؟
چون قبلا ایندکس تعریف شده بود برای صفحه پروفایل از قبل موند

saman
saman
@saman1111

شما فقط بگین الان آی دی یوزری که قراره ادیت بشه رو کجا میدید ؟
مثلا 10 تا یوزر دارین و میخواین شماره 3 رو ادیت کنید
باید مشخصات شماره 3 رو بیاره دیگه ؟ اون رو کجا تعیین می کنید ؟

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@saman1111
کل کدهارو فرستادم اینجا

 <form class="form-horizontal" action="{{ route('profile.update', ['user' => $user->id]) }}" method="POST">
Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@saman1111
برای سمت پنل ادمین مشکلی ندارم برای هر یوزر اکیه

من میخام هر کاربر با یوزر خودش لاگین شد بتونه مشخصاتش رو به جز ایمیل ویرایش کنه

saman
saman
@saman1111

اطلاعات کاربر فعلی رو با

auth()->user();

بگیرید و پاس بدید به ویو ببینید نتیجش چی میشه

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@saman1111

الان یوزر که لاگین هست مشکلی نداره روت هم اکیه

مشکل من اینه که بعد از ویرایش وقتی روی آپدیت میزنم پیام آپدیت شد میاد ولی تو دیتابیس تغییری رخ نمیده که نمیدونم مشکل از کجاست

مشکل دومم اینه وقتی روی ویرایش میزنم اطلاعات کاربر که لاگین کرده تو اینپوت نمایش نمیده طبق عکسی که فرستادم

saman
saman
@saman1111

خب الان مشکل این که اونجا نمایش داده نمیشه برای اینه که داده ای بهش ارسال نمیشه که توی value ها پر بشه
این باید حل بشه اول

اون مشکل رو هم من نمیدونم راستش، امیدوارم دوستان بهتر بهتون کمک کنن

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@saman1111
برای ولیو ها پیشنهادی ندارید ؟
چیزی که تو ادمین هست و نمایش میده ولی چرا اینجا نمایش نمیده

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام