2016-06-10 122 views
1

我在一个数据库中的以下数据创建使用Laravel刀片

salesperson_id | item  | value 
1     112   100 
1     199   100 
2     155   50 

这是使用laravel刀我怎么才能将数据存储在阵列中作为这样

[ 
    { 
    "salesperson_id":"1", 
    "ITEM":"112", 
    "TOTAL":100 
    }, 
{ 
    "salesperson_id":"1", 
    "ITEM":"199", 
    "TOTAL":100 
}, 
{ 
    "salesperson_id":"2", 
    "ITEM":"155", 
    "TOTAL":50 
} 
] 

与分组一表到显示一个类似下面

|Sales Person - 1 | 
        | ITEM | value | 
        112  100 
        199  100 
             total £200 
| Sales Person 2 | 
        | ITEM | value | 
        155   50  
            total £50 

我可以打印每行一个表行,但我想改变它与上述GROUPI ng,如果有人能指出我的方向是正确的,我不会寻找代码来完成我的工作。

回答

1

这是一个很好的用例Collection::groupBy

<table> 
    @foreach($data->groupBy('salesperson_id') as $salesperson) 
     <tr> 
      <td rowspan="{{ count($salesperson)+1 }}">{{ $salesperson[0]['salesperson_id] }}</td> 
      @foreach($salesperson as $item) 
       <td>{{ $item['ITEM'] }}</td> 
       <td>{{ $item['TOTAL'] }}</td> 
      @endforeach 
     </tr> 
     <tr> 
      <td colspan="2">Total: £ {{ $salesperson->sum('TOTAL') }}</td> 
     </tr> 
    @endforeach 
</table> 

只要确保$data传递到您的视图的集合,而不是作为一个普通的数组。