浅谈laravel5.5 belongsToMany自身的正确用法


Posted in PHP onOctober 17, 2019

场景

用户之间相互关注,记录这种关系的是followers表(follower_id 发起关注的人 followed_id被关注的人)

现在的多对多的关系就不再是传统的三张表的关系了, 这种情况 多对多关系应该怎么声明呢?

分析

laravel或者其他框架多对多的关系 一般都是由Model1 Model2 Model1_Model2(声明两者关系的表)来组成,

但是上面的场景 却是只有两张表,这时候就要研究下官方文档了; 当然是支持的

参考资料

https://laravel.com/docs/5.6/eloquent-relationships#many-to-many

In addition to customizing the name of the joining table, you may also customize the column names of the keys on the table by passing additional arguments to the belongsToMany method. The third argument is the foreign key name of the model on which you are defining the relationship, while the fourth argument is the foreign key name of the model that you are joining to:

belongsToMany方法传递的参数是可以定制的 以达到个性化的需求,

第一个参数是 第二个Model

第二个参数是 关系表名

第三个参数是 第一个Model在关系表中的外键ID

第四个参数是 第二个Model在关系表中的外键ID

解决

经过分析

1. 第一个Model是User 第一个Model也是User

2. 关系表名是 'followers'

/**
  * 关注当前用户的
  * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
  */
 public function followers()
 {
  return $this->belongsToMany(self::class, 'followers', 'followed_id','follower_id')->withTimestamps()
   ->withTimestamps();
 }

 /**
  * 被当前用户关注的用户
  */
 public function followed()
 {
  return $this->belongsToMany(self::class, 'followers', 'follower_id', 'followed_id');
 }

以上这篇浅谈laravel5.5 belongsToMany自身的正确用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP产生动态的影像图
Oct 09 PHP
php db类库进行数据库操作
Mar 19 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
PHP session会话的安全性分析
Sep 08 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
深入分析PHP引用(&)
Sep 04 PHP
PHP速成大法
Jan 30 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
PHP实现多文件上传的方法
Jul 08 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
php表单处理操作
Nov 16 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 PHP
解决laravel5.4下的group by报错的问题
Oct 16 #PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 #PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 #PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 #PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 #PHP
关于laravel 子查询 & join的使用
Oct 16 #PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 #PHP
You might like
一些关于PHP的知识
2006/11/17 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python文本数据相似度的度量
2018/03/12 Python
python代码过长的换行方法
2018/07/19 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
python搜索算法原理及实例讲解
2020/11/18 Python
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
中专毕业自我鉴定
2013/10/16 职场文书
超市重阳节活动方案
2014/02/10 职场文书
中央空调节能方案
2014/06/15 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2014年文员工作总结
2014/11/18 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
PHP命令行与定时任务
2021/04/01 PHP
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL