Laravel Blade - orderBy
Laravel Blade - orderBy
我的 blade 模板中有这个 foreach 循环。
@foreach ($employee->projects->groupBy('stage') as $stage => $project)
<tbody>
<td>{{ $stage }}</td>
<td class="text-center">{{ count($project) }}</td>
</tbody>
@endforeach
它在哪里找到员工参与的所有项目,并按他们所处的阶段(等待、进行中、启动)对它们进行分组。然后它列出了阶段和每个阶段的数量。这非常有效,但它们的顺序不正确。我希望它们处于等待、进行中和启动状态。目前它处于启动、等待、进行中。
如何在自定义订单中订购它们?
SQL应该是
SELECT ... FROM projects GROUP BY stage
ORDER BY stage = 'Waiting' DESC, stage = 'In Progress', ...
可能您需要使用类似于此的方法
->order_by(DB::expr("stage = 'Waiting' DESC"))->order_by(...)
好的,明白了。这是我所做的...
$projects = $employee->projects()
->groupBy('stage')
->select('stage', DB::raw('count(*) as total'))
->orderByRaw('case
when stage = "Waiting" then 1
when stage = "In Progress" then 2
when stage = "Launched" then 3
end')
->get();
然后在我的 blade 模板中,我做了...
@foreach ($projects as $project)
<tbody>
<td>{{ $project->stage }}</td>
<td class="text-center">{{ $project->total }}</td>
</tbody>
@endforeach
希望这对其他人有帮助。
我的 blade 模板中有这个 foreach 循环。
@foreach ($employee->projects->groupBy('stage') as $stage => $project)
<tbody>
<td>{{ $stage }}</td>
<td class="text-center">{{ count($project) }}</td>
</tbody>
@endforeach
它在哪里找到员工参与的所有项目,并按他们所处的阶段(等待、进行中、启动)对它们进行分组。然后它列出了阶段和每个阶段的数量。这非常有效,但它们的顺序不正确。我希望它们处于等待、进行中和启动状态。目前它处于启动、等待、进行中。
如何在自定义订单中订购它们?
SQL应该是
SELECT ... FROM projects GROUP BY stage
ORDER BY stage = 'Waiting' DESC, stage = 'In Progress', ...
可能您需要使用类似于此的方法
->order_by(DB::expr("stage = 'Waiting' DESC"))->order_by(...)
好的,明白了。这是我所做的...
$projects = $employee->projects()
->groupBy('stage')
->select('stage', DB::raw('count(*) as total'))
->orderByRaw('case
when stage = "Waiting" then 1
when stage = "In Progress" then 2
when stage = "Launched" then 3
end')
->get();
然后在我的 blade 模板中,我做了...
@foreach ($projects as $project)
<tbody>
<td>{{ $project->stage }}</td>
<td class="text-center">{{ $project->total }}</td>
</tbody>
@endforeach
希望这对其他人有帮助。