laravel 实现点赞功能

1.说明

点赞的思路就是
用户点赞如果没有点过赞则成功点赞
如果用户已经点过赞则取消点赞

使用核心代码

laravel ORM切换关联

多对多关联也提供了 toggle 方法用于「切换」给定 ID 数组的附加状态。
如果给定的 ID 已被附加在中间表中,那么它将会被移除,同样,如果给定的 ID 已被移除,它将会被附加:

例:$user->roles()->toggle([1, 2, 3]);

3.使用实例

Stu模型定义的多对多关系(定义一个即可)

  public function lesson()
    {
        //第一个参数是关联的表,第二个参数是关联连接表的表名
        //第三个参数是定义此关联的模型在连接表里的外键名,第四个参数是另一个模型在连接表里的外键名
        return $this->belongsToMany(Lesson::class, 'stu_lesson', 'stu_id', 'lesson_id');
    }

    #关注或者取消关联方法
    public function follwToggle($id)
    {
        return $this->lesson()->toggle($id)['attached']==null?0:1;
    }

控制层代码的使用

# 查询的对象调用model层里的`关注或者取消关联方法`
return $student = Stu::find(1)->follwToggle(1);

到这一步已经解决了取消或者关注的问题

posted @ 2021-03-03 16:23  以己为镜  阅读(179)  评论(0编辑  收藏  举报