【问题标题】:laravel 5.8 cannot update value in databaselaravel 5.8 无法更新数据库中的值
【发布时间】:2020-04-25 09:23:42
【问题描述】:

我尝试删除用户并将帖子更改为其他作者的帖子, 但我只得到一个空白页。

网址:

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的值没有更新?

【问题讨论】:

  • 代码是否报告任何错误?因为,根据我的假设,$admin-&gt;posts() 将解析为Collection,而您正在调用该集合上的update
  • 是的,我收到新错误 BadMethodCallException 调用未定义方法 App\User::posts()
  • 这是什么意思? @MD.TabishMahfuz
  • 你是否在用户模型中定义了posts 方法?
  • 我假设您在用户模型中定义了posts 关系,但您似乎没有。

标签: php laravel crud


【解决方案1】:

在您的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();
}

【讨论】:

  • SQLSTATE[42S22]:找不到列:1054 'where 子句'中的未知列'posts.user_id'(SQL:更新posts 设置author_id = 9,posts.@987654329 @ = 2020-04-25 17:06:41 其中posts.user_id = 8 和posts.user_id 不为空)
  • 它已经在我的帖子表中命名了广告 author_id,与表用户列 id 的关系
  • posts表是否有user_idauthor_id两者??
  • 嘿,它的作品,谢谢。但是我又遇到了一个新错误,顺便说一句,用户不仅与帖子有关系,用户还与用户创建的广告、链接、照片有关系。你能给我一些建议吗?
  • 好的。在User 模型和Post 模型中创建更多这样的关系。你想给我什么建议
猜你喜欢
  • 2020-05-10
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 2016-06-12
  • 2020-03-03
相关资源
最近更新 更多