->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 (将#修改为@)