使用Eloquent Laravel 4从DB中检索唯一条目

时间:2014-08-29 10:25:19

标签: laravel laravel-4 eloquent

我正在使用Laravel-4来构建应用程序。我正在努力充分利用Eloquent ORM。目前我正在显示一个db条目列表,它们都有许多与之关联的标签  在右侧,我显示所有标签的网格,但它显示重复的标签。我只想展示unique代码

这是我的代码:

<div class="tags-panel">
        <div class="tags-title"><h1>Tags</h1></div>
        <div class="tags-cloud">
            @foreach(Tag::distinct()->get() as $tag)
                <a href="#" class="tag"><span class="num"> {{ Tag::getAmount($tag->id) }} </span> {{$tag->name}} </a>
            @endforeach
        </div>
    </div>

Eloquent是否只提供从数据库中检索distinct条目的方法?

2 个答案:

答案 0 :(得分:2)

尝试使用Tag :: groupBy('field_name') - &gt; get()

<div class="tags-panel">
    <div class="tags-title"><h1>Tags</h1></div>
        <div class="tags-cloud">
            @foreach(Tag::groupBy('field_name')->get() as $tag)
                <a href="#" class="tag"><span class="num"> {{ Tag::getAmount($tag->id) }} </span> {{$tag->name}} </a>
            @endforeach
        </div>
    </div>

答案 1 :(得分:0)

要使用distinct() - 函数,您的链中可能有select(),或者在get() - 函数中使用字段作为参数。例如:

$tags = Tag::distinct()->get(array('field'));

$tags = Tag::select('field')->distinct()->get();

如果您不想提供字段名称,也可以使用groupBy('field')

$tags = Tag::groupBy('field')->get();