Paradox
4 سال پیش توسط Paradox مطرح شد
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 4 سال پیش مطرح شد
0

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

ویرایش


saman
@saman1111 4 سال پیش مطرح شد
0

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


Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

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


saman
@saman1111 4 سال پیش مطرح شد
0

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


Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

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

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

Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

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

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


saman
@saman1111 4 سال پیش مطرح شد
0

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

auth()->user();

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


Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

@saman1111

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

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

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


saman
@saman1111 4 سال پیش مطرح شد
0

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

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


Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

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


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

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