2014-08-29 50 views
1

我使用Laravel-4來構建應用程序。我試圖充分利用Eloquent ORM。目前,我正在顯示一個數據庫條目列表,其中包含多個與之相關的標籤 右側顯示所有標籤的網格,但顯示的是重複標籤。我只想表明unique標籤使用Eloquent Laravel檢索數據庫唯一條目4

這是我的代碼:

<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

看來你的代碼運行了很多不必要的查詢你可能需要像'lists'這樣的東西,但是要顯示你的表格和你期望得到的結果,才能得到真正的答案。 – 2014-08-29 18:05:28

回答

2

嘗試使用標籤:: GROUPBY( 'FIELD_NAME') - > 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> 
0

要使用distinct() -function你或者你的鏈有一個select(),或使用字段作爲參數在你的get()-功能。例如:

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

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

你也可以改用groupBy('field')如果你不想提供的字段名稱:

$tags = Tag::groupBy('field')->get(); 
相關問題