dongtuo5262 2016-02-20 17:07
浏览 379
已采纳

Laravel Eloquent将查询拆分为数组

Bit of a bad title, not quite sure how to research/describe what I'm trying to do.

I have a table called specifications with the fields

id, device_id, name, detail

Two rows for two different devices would for example be

1, 1, weight, 300kg
2, 2, weight, 250kg

Now the way I need to display it is in a single table compare both devices, essentially like this:

@foreach($specifications as $specification)
    <tr>
        <td>{{ $specification->name }}</td>
        <td>{{ $specification->detailOne }}</td>
        <td>{{ $specification->detailTwo }}</td>
    </tr>
@endforeach

I'm having issues getting the right query or split the query in order to be able to go through the array like above. Anyone mind putting me on the right mindset? Do I query both specs and somehow resort it into an array I can use as above, or is there something else I should be looking at?

  • 写回答

1条回答 默认 最新

  • dongmiao4733 2016-02-20 17:21
    关注

    This should work for you

    @foreach($specifications->groupBy('name') as $name => $specificationGrouped)
        <tr>
            <td>{{ $name }}</td>
            @foreach($specificationGrouped as $specification)
                <td>{{ $specification['detail'] }} ({{ $specification['device_id'] }})</td>
            @endforeach
        </tr>
    @endforeach
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?