使用多个键做模型关联

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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

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

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

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

4年前 评论
aoxiang594 3年前

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