按类别对数据库结果进行排序

时间:2013-09-26 21:06:36

标签: php json sorting multidimensional-array laravel

我的数据库中有一个表,其中包含“类别”和“标题”字段。我有多个记录具有相同的类别,但其他标题。我想要做的是在我的页面上打印一次类别然后显示具有相同类别的所有标题。 所以像这样:

Category 1
Title 3(=newest)
Title 2
Title 1(=olddest)

Category 2
Title 1

Category 3
Title 3(=newest)
Title 2
Title 1(=olddest)

我使用Laravel 4框架和Eloquent。所以我将结果作为JSON对象返回。

我现在所拥有的:

查看

@foreach($photos as $photo)

    {{$photo->Category}}

    @foreach($photo as $category)
        {{ $photo->Title }}
    @endforeach

@endforeach

控制器

$photos = Photo::orderBy('Date')->get(); // Sort by so that newest photos come first per category
return View::make('myView')->with('photos', $photos);

当进一步观察时,我来到array_add helper,但我不确定我是否可以使用它以及我应该如何使用它。

有人可以帮我实现我需要的结果吗?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

$photos = Photo::orderBy('category')->orderBy('created_at', 'desc')->get();
return View::make('myView')->with('photos', $photos);

然后

<?php $category = ''; ?>
@foreach($photos as $photo)

    @if($category != $photo->Category)
        {{$photo->Category}}
        <?php $category = $photo->Category; ?>
    @endif

    {{ $photo->Title }}

@endforeach