我有一个查询,它以一对一的关系将一个表与另一个表连接起来。如何按加入关系中的列
对结果进行排序$relation = ModelObject::where('status', '=', 1)
->with('related_table')
->get()
我需要使用related_table
的列(例如:名称)对其进行排序。如何在雄辩中做到这一点。
答案 0 :(得分:0)
根据laravel docs,您可以添加其他约束,
限制急切负荷
有时您可能希望加载关系,但也为热切加载查询指定其他查询约束。这是一个例子:
$pdo->query('SELECT * FROM post ORDER BY ABS(views) DESC');
最后你的代码应该是这样的,
$users = App\User::with(['posts' => function ($query) {
$query->where('title', 'like', '%first%');
}])->get();
答案 1 :(得分:0)
你可以使用这个
$categories = Category::select(DB::raw('categories.*, count(*) as
`aggregate`'))
->join('pictures', 'categories.id', '=', 'pictures.category_id')
->groupBy('category_id')
->orderBy('aggregate', 'desc');
答案 2 :(得分:-1)
您可以使用orderBy
$relation = ModelObject::where('status', '=', 1)
->with('related_table')
->orderBy('related_table.field') //field name is the name of the field on the basis of which you want to sort
->get();