Laravel 合集 - 结果顺序
Laravel Collections - Results order
以下....
控制器:
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'));
}
查看:
<ul>
@foreach($groups as $category_name => $treatments)
<li>
<h4>{{ $category_name }}</h4>
<ul>
@foreach($treatments as $treatment)
<li>
<h5>{{ $treatment->medical_name }}</h5>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
给我...
治疗按其类别和字母顺序分组,但类别未按字母顺序排列。
- Category B
Treatment A
Treatment B
Treatment C
- Category A
Treatment A
Treatment B
- Category C
Treatment A
Treatment B
Treatment C
Treatment D
如何获得按字母顺序列出的治疗方法和类别?
您可以通过为预加载查询添加查询约束来实现:
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'));
}
你是对的 - 我错了。我认为答案是连接查询:
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'));
}
检查上面示例中的表名和字段名。这应该有效。
以下....
控制器:
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'));
}
查看:
<ul>
@foreach($groups as $category_name => $treatments)
<li>
<h4>{{ $category_name }}</h4>
<ul>
@foreach($treatments as $treatment)
<li>
<h5>{{ $treatment->medical_name }}</h5>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
给我...
治疗按其类别和字母顺序分组,但类别未按字母顺序排列。
- Category B
Treatment A
Treatment B
Treatment C
- Category A
Treatment A
Treatment B
- Category C
Treatment A
Treatment B
Treatment C
Treatment D
如何获得按字母顺序列出的治疗方法和类别?
您可以通过为预加载查询添加查询约束来实现:
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'));
}
你是对的 - 我错了。我认为答案是连接查询:
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'));
}
检查上面示例中的表名和字段名。这应该有效。