Laravel-在加入上雄辩地搜索,但返回多行,需要一行



所以我有两个模型ProductProductPriceHistories

Product有很多ProductPriceHistories,它基本上是一个产品的每日价格。

我有一个小问题,当我尝试找到产品的最低价格时,由于联接找到了产品的多个价格,我返回了相同products的多个。

这是我的查询:

$products = ProductPriceHistory::orderBy(
'product_price_histories.price',
$request->get('direction')
)
->with('products')
->select('products.*')
->paginate(16);

我已经尝试了各种方法,但基本上我需要根据$request->get('direction')

如果无法在 Eloquent 中做到这一点,我将在 DB:Raw 中做到这一点,但肯定是我不知道如何正确地做到这一点。

您可以在with()方法中的每个元素中提供一个闭包,您可以在其中订购预先加载的产品,甚至如您所提到的,只获得第一个:

->with(['products' => function($query) use ($request)
{
$query->orderBy('orderByColumn', $request->get('direction'))
->first();  // If you want only the first result
}])

希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新