问题描述
我需要查询三个表。
到目前为止一切正常,我得到了我想要的一切,但因为我只想在数组中选择包含我想 ->first()
的最低价格的元素:
return Product::with(['price' => function($query) use ($today) {
$query->where(function ($subquery1) {
$subquery1-> *applying some filter here*
})->where(function ($timequery) use ($today){
$timequery->where('startingDate','<=',$today)->where('endingDate',null)
->orWhere('startingDate',null)->where('endingDate',$today)
->orWhere('startingDate','>=',null);
})->orderBy('price','asc');
}])->with('defaultPrice')->whereIn('id',$array)->get();
到目前为止效果很好。但是,有时我会为价格关系取回 2 行或更多行(没关系)。但是,我只想在那里选择数组中的第一个元素。
当我将 ->first()
直接放在 ->orderBy('price','asc')
之后时,我只会返回一个空数组。
当我把它放在 with('defaulPrice')
之前时,我什至没有取回我的价格关系
我到底错过了什么?
编辑:一旦我使用 where('id','someId')
查询单个产品它就可以工作,所以这归结为 whereIn...
任何人都可以解释我为什么并知道解决这个问题的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)