首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雄辩查询生成器Laravel5.6中的未知列

雄辩查询生成器Laravel5.6中的未知列
EN

Stack Overflow用户
提问于 2018-03-16 15:05:57
回答 1查看 1.1K关注 0票数 0

格类和格状过程之间的关系是一对多的。在gwrproces和gwrlist之间是多对一的。

我使用这段代码在数据中搜索。我现在使用%来查找所有东西,直到这件事奏效为止。

代码语言:javascript
复制
    $searchresult = GwrCategory::
    whereHas('gwrproces', function($query) use ($request){
        $query->where('gwr_code', 'LIKE', '%'.$request->input('gwrcode').'%')->
        whereHas('gwrlist', function($query) use ($request)
        {
            $query->where('versie', 'LIKE', '%');
        }
    )->with('gwrlist')->get();
    }
)->with('gwrproces')->get();

上面代码的结果sql是:

代码语言:javascript
复制
select * from `gwr_proces` 
where `gwr_proces`.`gwr_category_id` = `gwr_categories`.`id` and `gwr_code` LIKE %20% 
and exists 
(select * from `gwr_lists` 
 where `gwr_proces`.`gwrlist_id` = `gwr_lists`.`id` and `versie` LIKE %)

这导致错误: SQLSTATE42S22:列未找到:'where子句‘中的1054个未知列'gwr_categories.id’。

我在phpmyadmin中玩过这个查询,这似乎可以让它正常工作。我只将gwr_categories添加到第一个select * from中。

代码语言:javascript
复制
select * from `gwr_proces`,`gwr_categories` 
where `gwr_proces`.`gwr_category_id` = `gwr_categories`.`id` and `gwr_code` LIKE '%' 
and exists 
(select * from `gwr_lists` 
where `gwr_proces`.`gwrlist_id` = `gwr_lists`.`id` and `versie` LIKE '%')

我的问题是:如何说服雄辩者添加正确的列或重写代码,使其在gwrproces和gwrlist表中搜索列中的特定文本,同时保持与类别的关系?

编辑:我使用急切加载,因此with()->get()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-16 15:31:57

问题在于您执行嵌套查询。

你也不能用这种急切的加载。

删除->with('gwrlist')->get()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49323911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档