1.说明
点赞的思路就是
用户点赞如果没有点过赞则成功点赞
如果用户已经点过赞则取消点赞
使用核心代码
laravel ORM切换关联
多对多关联也提供了 toggle 方法用于「切换」给定 ID 数组的附加状态。
如果给定的 ID 已被附加在中间表中,那么它将会被移除,同样,如果给定的 ID 已被移除,它将会被附加:
例:$user->roles()->toggle([1, 2, 3]);
3.使用实例
- 数据库采取至mysql测试数据表
- 需要用到的表 stu,lesson,stu_lesson
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);
到这一步已经解决了取消或者关注的问题