保存功能在Eloquent中不起作用,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保存功能在Eloquent中不起作用,相关的知识,希望对你有一定的参考价值。

我喜欢帖子时执行的代码

   // auth()->id() is the id of the user that liked the post
   $post->post_likes()->associate(auth()->id());
   $post->save();

代码运行后发生错误

方法Illuminate Database Query Builder :: associate不存在。

-

发布模型

class Post extends Model
{

    public function post_likes()
    {            
        return $this->hasMany(PostLike::Class);
    }

}

更新

我喜欢这样做。

$post_like =  PostLike::create([
     'post_id' => $post->id,
     'user_id' => auth()->id()
]);

$post->post_likes()->save($post_like);            

现在我无法移除之类的东西。当我不喜欢帖子时,下面的代码会被执行。发生的错误是:

方法Illuminate Database Eloquent Collection :: dissociate不存在。

$post->post_likes->dissociate();

$post->save();
答案

来自docs attachdetach函数用于多对多关系。使用save进行一对多关系

另一答案

oneToMany你应该使用Associate和dissociate。

ManyToMany你应该使用附加和分离。

所以你需要的是将同事改为附加,就是这样。

并且在使用之后你需要保存。

查看文档OneToManyManyToMany

以上是关于保存功能在Eloquent中不起作用,的主要内容,如果未能解决你的问题,请参考以下文章

java代码在片段活动中不起作用

Javascript代码片段在drupal中不起作用

onRequestPermissionsResult 在片段中不起作用

Onclicklistener 在片段列表视图中不起作用

Visual Studio 自定义代码片段在方法定义的参数列表中不起作用

按钮在片段中不起作用