Php Laravel集合-结果顺序
以下 控制器:Php Laravel集合-结果顺序,php,laravel,collections,sql-order-by,Php,Laravel,Collections,Sql Order By,以下 控制器: public function treatmentsList() { $treatments = Treatment::with('category')->where('status', 1)->orderBy('medical_name')->get(); $groups = $treatments->groupBy('category.name'); return view('pages.trea
public function treatmentsList()
{
$treatments = Treatment::with('category')->where('status', 1)->orderBy('medical_name')->get();
$groups = $treatments->groupBy('category.name');
return view('pages.treatments.list', compact( 'groups'));
}
视图:
如何获得按字母顺序列出的治疗方法和类别?您可以通过为急切加载查询添加查询约束来获得:
Treatment::with(['category' => function ($query) {
$query->orderBy('name');
}])
->where('status', 1)
->orderBy('medical_name')
->get();
嗨
我不确定这是不是你的意思。。。但它不起作用。。。我仍然没有按字母顺序列出类别
public function treatmentsList()
{
$treatments = Treatment::with(['category' => function ($query) {
$query->orderBy('name');
}])
->where('status', 1)
->orderBy('medical_name')
->get();
$groups = $treatments->groupBy('category.name');
return view('pages.treatments.listA', compact( 'groups'));
}
你是对的,我错了。我认为答案是join查询:
public function treatmentsList()
{
$treatments = Treatment::with('category')
->select('treatment.*')
->join('category', 'category.id', '=', 'treatment.category_id')
->where('treatment.status', 1)
->orderBy('category.name')
->orderBy('treatment.medical_name')
->get();
$groups = $treatments->groupBy('category.name');
return view('pages.treatments.listA', compact( 'groups'));
}
检查上面示例中的表和字段的名称。这应该行得通。在groupBy函数调用之后,您是否尝试了一个
->orderBy('category.name')
?在groupBy函数调用之后添加->orderBy('category.name')
:方法orderBy不存在。非常感谢您。。。我刚刚调整了表名,一切正常。
public function treatmentsList()
{
$treatments = Treatment::with(['category' => function ($query) {
$query->orderBy('name');
}])
->where('status', 1)
->orderBy('medical_name')
->get();
$groups = $treatments->groupBy('category.name');
return view('pages.treatments.listA', compact( 'groups'));
}
public function treatmentsList()
{
$treatments = Treatment::with('category')
->select('treatment.*')
->join('category', 'category.id', '=', 'treatment.category_id')
->where('treatment.status', 1)
->orderBy('category.name')
->orderBy('treatment.medical_name')
->get();
$groups = $treatments->groupBy('category.name');
return view('pages.treatments.listA', compact( 'groups'));
}