我有两个模型:项目和类别。 Item模型有一个category_id字段,它是该类别的外键。
在搜索页面上,我正在执行过滤。这是通过一系列where()
子句完成的,例如
if($request->input('location_id', "") != "") {
$query->where('location_id', '=', $request->input('location_id'));
}
这些包含在范围search()中,因此它们被调用如下:
$results = Item::search($request)->get();
我现在想要对结果应用排序,首先是类别的name
列,然后是项目表的product_number
列。
如何在不干扰search
范围内的过滤的情况下进行此操作?
答案 0 :(得分:1)
只需添加多次调用 orderBy():
$results = Item::search($request)
->join('categories', 'category_id', '=', 'categories.id')
->select('items.*')
->orderBy('categories.name')
->orderBy('product_number')
->get();