В моем приложении Laravel
есть две таблицы MySQL, одна называется categories
, а другая - employees
.Структура categories
-таблицы такова:
id
category
order
, а в таблице employees
также есть столбцы под названием:
id
category
order
Итак, допустим, у меня есть 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" here
Consultants (2)
// employees with category "consultants" here
Administration (3)
// employees with category "administration" here