PHP Laravel как сортировать по категориям - PullRequest
0 голосов
/ 02 мая 2019

Я создаю приложение Laravel, и теперь я добавил две таблицы, таблицы "employee" и "employee_category". У них обоих есть столбец «Порядок», так что я могу установить порядок отображения категорий и сотрудников на веб-сайте.

Когда я добавляю сотрудников, я могу назначить их в категорию. Пока все хорошо, я могу отображать сотрудников в том порядке, в котором они были установлены, но не категории.

Это то, что я имею до сих пор:

Мои сотрудникиКонтроллер:

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 Ответ

1 голос
/ 02 мая 2019

Почему вы не запрашиваете именно то, что вы хотите, по вашему мнению

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

Хорошая вещьэто теперь можно разбивать на категории

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...