laravel 5.8 не может обновить значение в базе данных - PullRequest
1 голос
/ 25 апреля 2020

Я пытался удалить пользователя и изменить сообщение на сообщение другого автора, но я получил только пустую страницу.

url:

"http://127.0.0.1: 8000 / backend / admin / 8? Delete_option = attribute & selected_user = 9"

вот мой блейд

<form action="{{ route('admin.destroy', $admin->id) }}" method="DELETE">

                <div class="panel panel-flat">


                    <div class="panel-body ">

                        <div class="col-xs-9">
                            <div class="box">
                                <div class="box-body">
                                    <p>
                                        Anda punya pilihan untuk mengapus user ini
                                    </p>
                                    <p>
                                        ID #{{$admin->id}}: {{$admin->name}}
                                    </p>
                                    <p>
                                        Konten yang sudah dibuat Admin ini harus diapakan?
                                    </p>
                                    <p>
                                        <input type="radio" name="delete_option" value="delete" checked> Hapus semua konten atas nama admin ini
                                    </p>
                                    <p>
                                        <input type="radio" name="delete_option" value="attribute"> Alihkan konten ke admin lain
                                        <select class="form-control" name="selected_user" id="">
                                              @foreach($user as $admin)
                                              <option value="{{$admin->id}}">{{$admin->name}}</option>
                                              @endforeach
                                        </select>
                                    </p>
                                </div>
                                <div class="box-footer">
                                    <button type="submit" class="btn btn-danger">Konfirmasi Delete</button>
                                    <a href="{{ route('admin.index') }}" class="btn btn-default">Batalkan</a>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- /basic layout -->
                <!-- /categories -->
            </form>

это мой контроллер

  public function destroy(Requests\UserDestroyRequest $request, $id)
    {
        //
      $admin = User::where('id', $id)->first();

      $deleteOption = $request->delete_option;

      $selectedUser = $request->selected_user;

      if($delete_option == "delete"){
        $admin->posts()->delete();
      }

      elseif ($deleteOption == "attribute") {



        $admin->posts()->update( ['author_id' => $selectedUser]);



      }

      $admin->delete();

      return redirect()->route('admin.index')->with('message', 'Admin berhasil dihapus!');
  }

      public function confirm(Requests\UserDestroyRequest $request, $id)
    {
        //
      $admin = User::findOrFail($id);
    $user = User::where('id', '!=', $admin->id)->get(); 
      return view("backend.admin.confirm", compact('admin', 'user'));
  }

Кто-нибудь знает, в чем заключается проблема, которая приводит к тому, что значение author_id в базе данных не обновляется?

1 Ответ

1 голос
/ 25 апреля 2020

В вашей User модели создайте такое отношение

public function posts(){

    return $this->hasMany(Post::class,'author_id','id');

}

В вашей Post модели создайте такое отношение

public function user(){

    return $this->belongsTo(User::class);

}

И замените это

if($deleteOption == "delete"){
    $admin->posts()->delete();
}
...