码迷,mamicode.com
首页 > 其他好文 > 详细

Laravel 多对多使用WhereHas搜索,中间表和要搜索表的字段重合时

时间:2020-05-25 12:13:29      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:class   sele   weight   sql   区分   from   搜索   HERE   打印   

whereHas中的内容是对要查询模型字段的搜索

 Course::whereHas(‘help‘,function($query){
            $query->where(‘id‘,1);
        })->first();

打印sql

select * from `pte_course` where exists (select * from `pte_help` inner join `pte_course_help` on `pte_help`.`id` = `pte_course_help`.`help_id` where `pte_course`.`id` = `pte_course_help`.`course_id` and `id` = 1)

可以看出是对help表的id进行搜索

当中间表的字段和要搜索的表重合时,会报字段冲突错误(中间表使用id作为主键或者其他冲突字段)使用 .区分

 Course::whereHas(‘help‘,function($query){
            $query->where(‘help.id‘,1);
        })->first();

 

Laravel 多对多使用WhereHas搜索,中间表和要搜索表的字段重合时

标签:class   sele   weight   sql   区分   from   搜索   HERE   打印   

原文地址:https://www.cnblogs.com/sixdouble/p/12745779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!