微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

->first() 返回一个空数组,尽管得到了结果

如何解决->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 举报,一经查实,本站将立刻删除。