2016-04-28 96 views
0

我在Laravel 5.1中有一個應用程序,我的應用程序允許用戶添加一篇文章並選擇與該文章關聯的許多類別。Laravel輸出相關標籤

我保存關聯表中的文章之間的關係,我現在想要在用戶的文章頁面上輸出用戶已提交的所有文章,但在標題旁顯示文章所在的類別。

文章頁面將列出所有文章,因此列表必須是唯一的。

我的控制器:

public function index() 
    { 
     $articles = DB::table('articles') 
        ->leftjoin('w_relations','w_relations.article_id','=','articles.id') 
        ->leftjoin('articlecategories','articlecategories.id','=','w_relations.type_id') 
        ->where('articles.comp_id',Auth::user()->comp_id)->get(); 

     return view('advertiser/workshops', compact('workshops')); 
    } 

我看來

<ul> 
@foreach($articles as $a) 
    <li>{{ $a->article_name }} | {{ $a->category_name }}</li> 
@endforeach 
</ul> 

我以爲上面會輸出

Article 1 | History, Category, Category2 

而是我得到

Article 1 | History Article 
1 | Category Article 
1 | Category2 

我有種看到我要去哪裏錯了,但我不知道如何解決的查詢?

回答

0

這裏有一個快速解決您的問題,

  1. 請查詢
  2. 操縱輸出

那麼接下來我看來應該是這樣的:

<ul> 
@foreach($articles as $a) 
    <li>{{ $a->article_name }} 
    // inner loop on articles would only output category names 
    // that match the current article 
    // quite a labour if you ask me 
    @foreach($articles as $x){ 
     @if($x->id == $a->id){ 
      {{ $a->category_name }} 
     @endif 
    @endforeach 
    </li> 
@endforeach 
</ul> 

我確定你可以有一個更優雅的應用程序通過利用蟑螂來利用Laravel的雄辯ORM