简体   繁体   English

laravel 5.8 无法更新数据库中的值

[英]laravel 5.8 cannot update value in database

I tried to delete a user and change the post to other author's, but i only get a blank page.我试图删除一个用户并将帖子更改为其他作者的帖子,但我只得到一个空白页。

url: url:

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

here is my blade这是我的刀片

<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>

this is my controller这是我的 controller

  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'));
  }

Anyone know what is the problem which causes the value of author_id in database to not be updated?任何人都知道导致数据库中 author_id 的值不更新的问题是什么?

In your User model create a relation like this在您的User model 中创建这样的关系

public function posts(){

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

}

In your Post model create a relation like this在您的Post model 中创建这样的关系

public function user(){

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

}

And replace this并替换这个

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM