PHP Laravel如何按类别排序

时间:2019-05-02 09:09:11

标签: php laravel

我正在构建Laravel应用程序,现在我添加了两个表,即“ employees”和“ employees_category”表。两者都有一个“订单”列,因此我可以设置类别和员工在网站上的显示顺序。

添加员工时,可以将其分配到类别。到目前为止,到目前为止,我可以按设置顺序显示员工,但不能显示类别。

这是我到目前为止所拥有的:

我的EmployeesController:

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('employee_order') as $worker)
      // some content
    @endforeach
</div>
@endforeach

这会按订单号而不是类别对员工进行正确排序,我该如何实现?

1 个答案:

答案 0 :(得分:1)

为什么不精确查询您想要的视图

public function index()
{
    $categories = Category::with('employees')->get();

    return view('app.employee.index', compact('categories'));
}

并在视图中:(请注意,您想要的是as $category => $workers

@foreach ($categories as $category)
<div class="col text-center mb-6">
    <h2>{{ $category }}</h2>
</div>
<div class="row px-4 px-xl-10">
    @foreach($category->employees->sortBy('employee_order') as $worker)
      // some content
    @endforeach
</div>
@endforeach

好消息是,您现在可以对分类进行分页