首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Laravel关系:具有来自其他两个表的ids的表

Laravel关系:具有来自其他两个表的ids的表
EN

Stack Overflow用户
提问于 2017-06-23 00:24:22
回答 1查看 176关注 0票数 0

我的数据库里有两张桌子:‘旅游’和‘游客’。

一个‘旅游’可以有很多‘旅游’,‘游客’可以参加许多‘旅游’。所以,我已经成功地通过‘begonsToMany’关系(当添加行“旅游”和‘游客“中间表'tour_tourist’也给出一行。

"tour_tourist“表结构是:

代码语言:javascript
运行
AI代码解释
复制
tour_id | tourist_id
      1 | 37
      1 | 38
      1 | 39

( id为37,38和39 go的游客以id=1作为旅游目的地)

问题是:“游客”(37、38或39 )中的一个可能是“旅游”的“买家”(从上表1)。因此,只有一个人支付旅游费用。另外,这个人也可以去旅游/只付钱。我传递这个数据(旅游,游客,谁是买家,他会去旅游)时,提交一个旅游通过网络表格。

因此,我想创建第三张桌子,名为“买家”,代表一个“游客”,谁支付了旅游费用:

代码语言:javascript
运行
AI代码解释
复制
tour_id | tourist_id | is_tourist
   1    |     39     |     0

(1 )一个'tour_id‘只能匹配一个'tourist_id')

(2.“tourist_id”应是前一张“tour_id”表中“属于”tour_id的人之一-游客39属于旅游1-见上表)。

(3. 'is_tourist‘是1/0,意思是买家去参观/只付款,在我的例子中是0-他只付钱,不付款)。

我想知道如何使用雄辩的关系(一对一)来做这件事?hasManyThrough?)

感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-06-23 00:53:00

更简单的方法可能是在您的is_payer表中创建另外两个名为is_touristtour_tourist的列,以避免创建第三个表。

tour_tourist表的结果可能如下所示:

代码语言:javascript
运行
AI代码解释
复制
tour_id | tourist_id | is_payer | is_tourist
   1    |     37     |     1    |     0/1
   1    |     38     |     0    |      1
   1    |     39     |     0    |      1

然后,通过雄辩,您可以使用withPivot方法链接belongsToMany方法来访问额外的列。

例如,您的旅游模型可以是这样的:

旅游

代码语言:javascript
运行
AI代码解释
复制
class Tour extends Eloquent {
  protected $table = 'tours';

  public function tourists() {
    return $this->belongsToMany('Tourist')->withPivot('is_payer', 'is_tourist');
  }
}

结果,您将得到is_payer & is_tourist

然后,您可以使用Collection方法将它们过滤掉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44716569

复制
相关文章
JPA关联关系表中加其他字段
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体[对象持久化]到数据库中。 Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。(出自百度百科) JPA优点:上手快,使用简单。 JPA缺点:不适合关联关系复杂的项目。
用户5166330
2020/02/13
4.5K1
MySQL表与表之间的关系
这是一个书和出版社的一个例子,书要关联出版社(多个书可以是一个出版社,一个出版社也可以有好多书)。
星哥玩云
2022/08/18
3.6K0
MySQL表与表之间的关系
MySQL表与表之间的关系详解
员工信息表有三个字段:工号 姓名 部门 如何把他们相互联系起来呢??
全栈程序员站长
2022/07/21
2K0
表与表之间关系
可以在数据库图表中的表之间创建关系,以显示一个表中的列与另一个表中的列是如何相链接的。
星哥玩云
2022/09/15
1.4K0
表与表之间关系
SQL表之间的关系
要在表之间强制执行引用完整性,可以定义外键。修改包含外键约束的表时,将检查外键约束。
用户7741497
2022/06/06
2.5K0
探秘Oracle表空间、用户、表之间的关系
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/49282199
DannyHoo
2018/09/13
2.7K0
探秘Oracle表空间、用户、表之间的关系
PowerBI建模表与表关系
各位表哥表姐、表弟表妹们,我们生活一个表的世界,大家可能每天都在跟表格打交道,我们这节就来重新认识表这个家族。
公众号PowerBI大师
2019/08/07
4K0
PowerBI建模表与表关系
Laravel Migrate修改表和创建表
php artisan make:migration create_table_test –table=test_a 修改表 Schema::table(‘test’, function (Blueprint $table) { $table->dropColumn([‘data’]); $table->renameColumn(‘tttt’,’test’); $table->addColumn(‘string’,’t_id’, [‘length’ => 200]); }); php artisan
苦咖啡
2018/04/28
2K0
为什么我的两个表建立数据关系有问题?
小勤:真的嘢!里面有两个小米,一个是宏仁生产的,一个是德昌生产的。但是,产品名称重复不行吗?
大海Power
2021/08/30
1.2K0
[操作系统]具有快表的内存转换机构
基本地址转换机构:一组硬件机构,将逻辑地址转换成物理地址,需要两次访存,先查页表再查内存 具有快表的地址转换机构 1)局部性原理 2)什么是快表 3)引入快表后,地址转换只需要一次访存
唯一Chat
2021/01/02
7820
laravel 表迁移报错[通俗易懂]
解决: 索引长度 & Mysql / MariaDB Laravel 默认使用 utf8mb4 编码,它支持在数据库中储存 emojis 。如果你是在版本低于 5.7.7 的 MySQL 或者版本低于 10.2.2 的 MariaDB 上创建索引,那你就需要手动配置数据库迁移的默认字符串长度。 即在 AppServiceProvider 中调用 Schema::defaultStringLength 方法来配置它:
全栈程序员站长
2022/08/09
5770
ABAP 取两个内表的交集 比较两个内表的不同
SAP自带的函数: CTVB_COMPARE_TABLES和BKK_COMPARE_TABLES; 似乎可以比较两个内表,得出第二个内表不同于第一个内表的部分(新增/删除了那些部分) 但是,具体的使用,还请有经验的朋友不吝赐教啊! 因为,我在测试数据时,发现这两个函数的效果不那么简单。 如果上述函数确实可以,提取两个内表不同部分,则我可以据此做两次比较,得到两个内表的交集。 所以,我先用另外一种方式解决了-自己写了一个提取两个内表交集的函数,供大家检阅: *" IMPORTING *" VALUE(ITAB1) TYPE INDEX TABLE *" VALUE(ITAB2) TYPE INDEX TABLE *" EXPORTING *" VALUE(ITABSAME) TYPE INDEX TABLE *"---------------------------------------------------------------------- field-symbols: <S1>, <S2>. data: L1 type i, L2 type i. assign local copy of initial line of: ITAB1 to <S1>, ITAB2 to <S2>. describe: table ITAB1 lines L1, table ITAB2 lines L2. "对记录行数少的内表,执行第一层循环; "在第二层循环中,找到对应记录,即可追加到结果内表; "同时退出第二层循环,继续执行第一层循环的下一行 IF L1 <= L2. LOOP AT ITAB1 INTO <S1>. LOOP AT ITAB2 INTO <S2>. IF <S1> EQ <S2>. APPEND <S1> TO ITABSAME. EXIT. ENDIF. ENDLOOP. ENDLOOP. ELSE. LOOP AT ITAB2 INTO <S2>. LOOP AT ITAB1 INTO <S1>. IF <S1> EQ <S2>. APPEND <S2> TO ITABSAME. EXIT. ENDIF. ENDLOOP. ENDLOOP. ENDIF. ENDFUNCTION. 另一个问题,想请教大家,在上面代码里,第二层循环是为了找出,第一层循环的当前记录,在第二个内表里是否存在;
matinal
2020/11/26
3.1K0
用户、角色、权限表的关系(mysql)
`description` varchar(255) DEFAULT NULL,
全栈程序员站长
2022/11/10
5.8K0
用户、角色、权限表的关系(mysql)
函数周期表丨其他丨表丨DATATABLE
可能从名称上看,小伙伴差不多能猜到这个函数的用途,其作用有点类似于其他编程语言中的创建语法,可以添加新的数据。
PowerBI丨白茶
2021/08/31
3560
函数周期表丨其他丨表丨DATATABLE
Django 分表的两个方案
这个问题戳到了Django ORM的痛点,对于多数据库/分库的问题,Django提供了很好的支持,通过using和db router可以很好的完成多数据库的操作。但是说到分表的问题,就有点不那么友好了。但也不是那么难处理,只是处理起来不太优雅。
the5fire
2019/03/01
3.3K2
事实表,维度,度量,指标之间的关系
事实表:每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如销售商品所产生的数据,与软件中实际表概念一样
黄昏前黎明后
2019/09/11
2.5K0
MYSQL回顾(表关系相关)
比如有两个表,分别是书籍表和出版社表。书籍和出版社是典型的多对一关系,即一本书只能由一个出版社出版,一个出版社可以出版多本书。则书籍表应该有一个外键press_id指向出版社表的id primary key。
VV木公子
2020/02/18
5.9K0
MYSQL回顾(表关系相关)
点击加载更多

相似问题

Laravel -表与其他两个表之间的关系

10

Laravel与其他表的关系

11

具有多个表的Laravel关系

31

来自关系表backpack laravel的addColumn

13

Laravel用户和其他关系表

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档