eloquent 查询构建器 laravel 5.6 中的未知列
Unknown column in eloquent query builder laravel 5.6
gwrcategory和gwrproces是一对多的关系。 gwrproces 和 gwrlist 之间是多对一的。
我用这段代码在数据中搜索。我现在使用 % 来查找所有内容,直到它起作用。
$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 是:
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 %)
这给出了一个错误:SQLSTATE[42S22]:找不到列:1054 'where clause' 中的未知列 'gwr_categories.id'。
我试过 phpmyadmin 中的查询,这似乎可以正常工作。我只将 gwr_categories
添加到第一个 select * 来自。
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 '%')
我的问题是:如何说服 eloquent 添加正确的列或重写代码以使其在 gwrproces 和 gwrlist 表中搜索列中的特定文本,同时保持与类别的关系完好无损?
编辑:我使用预先加载,因此 with()->get()
问题是您执行了嵌套查询。
你也不能像那样使用预加载。
移除 ->with('gwrlist')->get()
.
gwrcategory和gwrproces是一对多的关系。 gwrproces 和 gwrlist 之间是多对一的。
我用这段代码在数据中搜索。我现在使用 % 来查找所有内容,直到它起作用。
$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 是:
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 %)
这给出了一个错误:SQLSTATE[42S22]:找不到列:1054 'where clause' 中的未知列 'gwr_categories.id'。
我试过 phpmyadmin 中的查询,这似乎可以正常工作。我只将 gwr_categories
添加到第一个 select * 来自。
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 '%')
我的问题是:如何说服 eloquent 添加正确的列或重写代码以使其在 gwrproces 和 gwrlist 表中搜索列中的特定文本,同时保持与类别的关系完好无损?
编辑:我使用预先加载,因此 with()->get()
问题是您执行了嵌套查询。
你也不能像那样使用预加载。
移除 ->with('gwrlist')->get()
.