我创建了一个将订单分配给员工的网站。 我将新订单分配给分配给订单的订单数量最少的员工。
我目前找到该员工的代码:
$employees=User::whereHas('employee', function ($q) use ($company) {
$q->where('company_id', $company->id);
})->get();
$min='999';
foreach ($employees as $employee)
{
if(Order::where('assigned_to_employee',$employee->id)->count()<$min)
{
$assign_id=$employee->id;
$min=Order::where('assigned_to_employee',$employee->id)->count();
}
}
我觉得有更好的方法可以做到这一点,欢迎提出建议。 另外,如果我这样做的方式很好,我如何分配$ min一个最大的int值?
由于
答案 0 :(得分:0)
我不确定我完全理解,但如果您使用的是Laravel 5.3,我认为您将从以下方面受益。您应该能够使用withCount和orderBy的组合来获取订单数量最少的员工列表。
User::withCount('employee')->orderBy('employee_count', 'asc')->first();