浅谈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 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
php不用正则采集速度探究总结
Mar 24 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
php学习之运算符相关概念
Jun 09 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
php日志函数error_log用法实例分析
Sep 23 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
Yii框架应用组件用法实例分析
May 15 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自定文件保存session的方法
2014/12/10 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
php显示页码分页类的封装
2017/06/08 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
javascript 关闭IE6、IE7
2009/06/01 Javascript
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
微信小程序实现签字功能
2019/12/23 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
毕业生的自我评价分享
2013/12/18 职场文书
寒假实习自荐信
2014/01/26 职场文书
超市中秋节促销方案
2014/03/21 职场文书
二手房买卖协议书
2014/04/10 职场文书
学生会辞职信
2015/03/02 职场文书
针对吵架老公保证书
2015/05/08 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技