不确定Laravel View如何处理可以“分组”的数据库结果

时间:2014-01-27 10:28:31

标签: php sql laravel

(这适用于任何框架,但我使用Laravel作为参考)。

以下SQL结果$result从Controller传递给我的View。

Product | Delivery Method | Priority      | Price
Ham     | Courier         | Low           | $3
Ham     | Courier         | Med           | $4
Ham     | Courier         | High          | $5
Jam     | Shipping        | Low           | $9
Jam     | Aircraft        | High          | $20
Jam     | Courier         | Low           | $3

我一直想知道如何切割这些数据并对它们进行“分组”,以便View可以按如下方式打印:(输出为HTML,但我们将为此示例提供明文)

Courier
Low Priority
--all products having low priority under courier e.g.:
Ham     | $3
Jam     | $3

--similarly for:
Med Priority
High Priority

-- then repeat for next method (shipping).
  • 如何优雅地实现这一目标?
  • 切片代码是否属于Controller,View或Model?
  • 我应该使用多个查询而不是一个查询,这样我就不必“切片”了吗?

我一直用嵌套的for循环切断我的数据,并使用数组索引将它存储在Controller中(即$result['Courier']['Low']$result['Shipping']['Low'])然后将其发送到View,这是一个真正的在这个时代以野蛮的方式做事,欢迎提出建议。

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是查询必要的行(假设其中有50行)。然后使用array_filterarray_map将它们分成2个新数组。最后,在您的视图中,每个新数组可以有2个循环。应将array_filterarray_map逻辑放在View内,以便实际模板只呈现数据

相关问题