根据一对多关系的值对集合进行排序

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

我正在构建一个过滤功能(已经可以使用)。现在我只想添加一个订单功能:按“艺术家名称”,“艺术品标题”排序,...

可能的订单值不是此表中的“字段”。我找不到启动这个“orderBy”查询的方法。我正在寻找的是这样的:

$artworks = $artworks->orderBy(function($q) use($request){
    $q->where('title', 'LIKE', '%artist_name%');
});

但显然这不起作用。有没有办法做到这一点?例如:我希望能够对具有title“artist_name”的艺术品进行排序,这些艺术品按照这些记录的value排序

我有两张桌子:ArtworksArtwork_data(一对多关系)。

这是我的Artwork_data表:

Artwork_data table

php laravel eloquent
1个回答
0
投票

您可以将orderByRaw与条件子句一起使用

->orderByRaw('case when title like %artist_name% then value else somecolumn end asc')
© www.soinside.com 2019 - 2024. All rights reserved.