如何解决->first() 返回一个空数组,尽管得到了结果
我需要查询三个表。
到目前为止一切正常,我得到了我想要的一切,但因为我只想在数组中选择包含我想 ->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 举报,一经查实,本站将立刻删除。