浅谈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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
PHP+DBM的同学录程序(1)
Oct 09 PHP
增加反向链接的101个方法 站长推荐
Jan 31 PHP
Discuz!下Memcache缓存实现方法
May 28 PHP
php查找任何页面上的所有链接的方法
Dec 03 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
php封装的验证码类分享
Feb 26 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
PHP simplexml_load_file()函数讲解
Feb 03 PHP
php生成静态页面并实现预览功能
Jun 27 PHP
使用PHP开发留言板功能
Nov 19 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Django 前后台的数据传递的方法
2017/08/08 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python实现PID算法及测试的例子
2019/08/08 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
Python flask框架端口失效解决方案
2020/06/04 Python
什么是python的必选参数
2020/06/21 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
宿舍违规用电检讨书
2014/02/16 职场文书
有创意的广告词
2014/03/18 职场文书
会计学专业自荐信
2014/06/25 职场文书
毕业生应聘求职信
2014/07/10 职场文书
大学生创业计划书
2014/08/14 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
Redis分布式锁Redlock的实现
2021/08/07 Redis
Tomcat用户管理的优化配置详解
2022/03/31 Servers
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers