簡體   English   中英

編輯個人資料不會編輯 Laravel

[英]Edit profile doesnt edit laravel

就像標題所說的那樣,當我轉到 users/1 時,它會向我顯示表單,在我更改某些內容並按確認后,它不會更新,無論是在視圖中還是在數據庫中。這里有什么問題?

我的觀點edit.blade.php

  <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header"><h2 style="text-align:center;">Edit Your Profile</h2></div>
                    <div class="card-body">
                      <form method="post" action="{{route('users.update',$user)}}">
                        {{ csrf_field() }}
                        {{ method_field('patch') }}
                      <div class="form-group row">
                          <label for="org_name" class="col-md-4 col-form-label text-md-right">{{ __('Organisation Name ') }}</label>

                          <div class="col-md-6">
                            <input id="org_name" name="org_name" type="text" class="form-control"value="{{$user->org_name}}">

                              @error('org_name')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                      </div>
                      <div class="form-group row">
                          <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>

                          <div class="col-md-6">
                              <input id="email" type="email" class="form-control" name="email" value="{{ $user->email }}">

                              @error('email')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                      </div>
                      <div class="form-group row">
                          <label for="username" class="col-md-4 col-form-label text-md-right">{{ __('Username') }}</label>

                          <div class="col-md-6">
                              <input id="username" type="username" class="form-control" name="username" value="{{ $user->username }}">

                              @error('username')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                      </div>
                      <div class="form-group row">
                          <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                          <div class="col-md-6">
                              <input id="password" type="password" class="form-control" name="password" >

                              @error('password')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                      </div>

                      <div class="form-group row">
                          <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>

                          <div class="col-md-6">
                              <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
                          </div>
                      </div>
                      <div class="form-group row">
                          <label for="country" class="col-md-4 col-form-label text-md-right">{{ __('Country') }}</label>

                          <div class="col-md-6">
                              <input id="country" type="text" class="form-control" name="country" value="{{$user->country}}">

                              @error('country')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                      </div>
                      <div class="form-group row">
                          <label for="org_type" class="col-md-4 col-form-label text-md-right">{{ __('Organisation Type') }}</label>

                          <div class="col-md-6">
                              <input id="org_type" type="text" class="form-control" name="org_type" placeholder="Vet/Uni" value="{{$user->org_type}}" >

                              @error('org_type')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                      </div>
                      <div class="form-group row">
                          <label for="depart" class="col-md-4 col-form-label text-md-right">{{ __('Department') }}</label>

                          <div class="col-md-6">
                              <input id="depart" type="text" class="form-control" name="depart" value="{{ $user->depart}}">

                              @error('depart')
                                  <span class="invalid-feedback" role="alert">
                                      <strong>{{ $message }}</strong>
                                  </span>
                              @enderror
                          </div>
                        </div>
                        <div class="form-group row mb-0">
                          <div class="col-md-6 offset-md-4">
                            <button type="submit" class="btn btn-primary">
                              Edit
                            </button>

                      </form>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>

我的用戶控制器

class UserController extends Controller
{
  public function __construct()
  {
      $this->middleware('auth');
  }

  public function edit(User $user)
  {
      $user = Auth::user();
      return view('users.edit', compact('user'));
  }

  public function update(User $user)
  {


        $this->validate(request(), [
          'org_name' => ['required', 'string', 'max:255','unique:users'],
          'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
          'username' => ['required', 'string','max:255', 'unique:users'],
          'password' => ['required', 'string', 'min:8', 'confirmed'],
          'country' => ['required', 'string', 'max:255'],
          'org_type' => ['required', 'string', 'max:255'],
          'depart' => ['required', 'string', 'max:255'],
            ]);

            $user->org_name = request('org_name');
            $user->email = request('email');
            $user->username = request('username');
            $user->password = bcrypt(request('password'));
            $user->country = request('country');
            $user->org_type = request('org_type');
            $user->depart = request('depart');


            $user->save();

            return back();

        }



  }

我的路線

Route::get('users/{user}',  ['as' => 'users.edit', 'uses' => 'UserController@edit']);
Route::patch('users/{user}/update',  ['as' => 'users.update', 'uses' => 'UserController@update']);

提前致謝! 我認為 users/1/update 路線有問題嗎?

public function update(Rrequest $request, User $user)
 {

    $this->validate($request, [
      'org_name' => 'required|string|max:255|unique:users,org_name,'.$user->id,
      'email' => 'required|string|email|max:255|unique:users,email,'.$user->id,
      'username' => 'required|string|max:255|unique:users,username,'.$user->id,
      'password' => 'required|string|min:8',
      'country' => 'required|string|max:255',
      'org_type' => 'required|string|max:255',
      'depart' => 'required|string|max:255',
    ]);

        $user->org_name = $request->get('org_name');
        $user->email = $request->get('email');
        $user->username = $request->get('username');
        $user->password = bcrypt($request->get('password'));
        $user->country = $request->get('country');
        $user->org_type = $request->get('org_type');
        $user->depart = $request->get('depart');

        $user->save();

    return back();

 }

請使用此代碼。

您沒有通過驗證規則。 有了這個:

'org_name' => ['required', 'string', 'max:255','unique:users'],

您是說org_name必須是唯一的,但您必須指定在更新中是唯一的而不是它自己

你可以嘗試這樣的事情:

Rule::unique('users')->ignore($user->id, 'id')

或類似的東西:

'org_name' => 'unique:users,org_name,id_to_ignore'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM