如何在laravel上使用orderby内部关系?

问题描述 投票:0回答:1

我知道这是一个有趣的问题,但我无法使用关系来解决它。

这是我的模型:

public function category(): BelongsTo
{
    return $this->belongsTo('App\Models\Master\Product\Category');
}

这是我的控制器:

$products = Product::with('category')->orderBy('category.name')->get();

但是我收到错误未知错误列“category.name”,尽管该列存在。我知道我可以像这样使用 leftjoin 来解决这个问题:

$products= Product::leftJoin('categories', 'categories.id','products.category_id')->orderBy('categories.name')->get();

但是如果我只想在该关系中使用 OrderBy 呢?

mysql laravel model sql-order-by
1个回答
0
投票

您可以使用:

$products = Product::with(['category' => fn($q) => $q->orderBy('name')])->get();

请参阅文档中的约束渴望加载以获取更多详细信息

© www.soinside.com 2019 - 2024. All rights reserved.