我正在使用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
条目的方法?
答案 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();