为了账号安全,请及时绑定邮箱和手机立即绑定

PHP Laravel如何使用两个表进行排序

PHP Laravel如何使用两个表进行排序

PHP
墨色风雨 2021-05-20 15:11:52
我的应用程序中有两个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();


查看完整回答
反对 回复 2021-05-28
  • 2 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信