我的应用程序中有两个MySQL表Laravel,一个称为categories,另一个称为employees。categories-table的结构为:idcategoryorder该employees表还具有称为:idcategoryorder因此,可以说我categories喜欢:顾问,程序员和行政管理,当我在后端创建员工时,可以将新员工分配到以下类别之一。现在,在我的应用程序的前端,我Laravel希望按类别显示雇员,并按给出的顺序显示类别。假设顾问的顺序为2,程序员的顺序为1,管理的顺序为3。现在,我的控制器如下所示:use App\Employee;class EmployeesController extends Controller{ public function index() { $employees = Employee::all()->groupBy('category'); return view('app.employee.index', compact('employees')); }}和我的刀片视图文件:@foreach ($employees as $category => $workers) <div class="col text-center mb-6"> <h2>{{ $category }}</h2> </div> <div class="row px-4 px-xl-10"> @foreach($workers->sortBy('order') as $worker) // content of the employee @endforeach </div>@endforeach仅通过使用“雇员”表的类别就可以正确地对雇员进行排序,但是如上所述,我无法按我想要的类别对类别进行排序。那么,有人可以帮我吗?编辑作为示例,我希望输出看起来像这样:Programmers (since this category has order of 1) // employees with category "programmers" hereConsultants (2) // employees with category "consultants" hereAdministration (3) // employees with category "administration" here
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
我认为您必须将查询更改为:
$categories = Category::with(['employees'=>function($q){
$q->orderBy('order');
}])->orderBy('order')->get();
- 2 回答
- 0 关注
- 286 浏览
添加回答
举报
0/150
提交
取消