解析laravel hasManyThrough如何用?

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

解析laravel hasManyThrough如何用?

下面由Laravel教程栏目给大家介绍laravel hasManyThrough用法及参数,希望对大家有所帮助!

第一种情况,我称之为传导关联表(简单模式)

国家有很多用户,用户有很多帖子

countries    id - integer    name - stringusers    id - integer    country_id - integer    name - stringposts    id - integer    user_id - integer    title - string
登录后复制

查询某个国家的所有帖子,怎么实现?

countries为本表,posts为要输出的目标表,users为中间表

return $this->hasManyThrough('App\Post', 'App\User', 'country_id', 'user_id');
登录后复制

第二种情况,有中间表情况(纯中间表)

exam_paper(试卷表)idnameexam_paper_question(试卷与试题中间表)idexam_paper_idquestion_idexam_question(试题表)idname
登录后复制

我们要通过exam_paper的id查询question

return $this->hasManyThrough('exam_question', 'exam_paper_question', 'exam_paper_id', 'id','id','question_id');
登录后复制
// 参数1 目标表类名exam_question,// 参数2 枢纽表类名exam_paper_question,// 参数3 枢纽表中和当前表关联的字段名'exam_paper_question.exam_paper_id',// 参数4 目标表和枢纽表关联的字段名'exam_question.id',// 参数5 当前表中和枢纽表关联的字段名'exam_paper.id',// 参数6 枢纽表和目标表关联的字段名'exam_paper_question.question_id');
登录后复制

如果把当前表记作A,目标表记作B,中间表记作C,6个参数记作(B,C,CA,BC,AC,CB)

推荐学习:《laravel视频教程》

以上就是解析laravel hasManyThrough如何用?的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:php7的错误与异常处理
下一篇:如何用PHP正则表达式验证输入字符串是否为正确的身份证号码、护照号码或港澳通行证格式

发表评论

关闭广告
关闭广告