使用多个键做模型关联

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 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

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

4年前 评论
aoxiang594 3年前

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

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

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