使用多个键做模型关联

awobaz/compoships

文档

example

public function course()
{
    return $this->belongsTo(Course::class, ['user_id', 'teacher_id', 'tpye_id',], ['user_id', 'teacher_id', 'tpye_id',])
        ->select([
            'id',
            'user_id',
            'teacher_id',
            'tpye_id',
        ]);
}

sql

select * from `course`
where (
    (
      `course`.`user_id` = 1
      and `course`.`teacher_id` = 5
      and `course`.`type_id` = 1
    )
    or (
      `course`.`user_id` = 2
      and `course`.`teacher_id` = 6
      and `course`.`type_id` = 3
    )
  )

源码分析

如果foreignKeys是空,默认使用指定表的主键。
如果foreignKeys是数组,循环并且使用DB::raw组合成一个新的where条件

如果localKey是空,默认使用指定表的主键。

注意

使用多列with的两个Model都要use Compoships;

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

一直没注意可以用数组,学习了

4年前 评论
baber (楼主) 4年前

你这帖子,怎么说呢,我还以为底层可以使用数组传,还试了一下,结果是个扩展包 :unamused: :unamused:

4年前 评论
aoxiang594 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
1
收藏
2
排名:2316
访问:609
私信
所有博文
社区赞助商