2016-04-28 3 views
0

У меня есть приложение в Laravel 5.1, мое приложение позволяет пользователю добавлять статью и выбирать несколько категорий, связанных с этой статьей.Laravel Output Связанные теги

Я сохраняю связь между статьей в таблице ассоциаций, и теперь я хочу вывести на странице статей пользователя все статьи, которые пользователь представил, но на стороне заголовка показаны категории, в которых находится статья.

на странице статей будут перечислены все статьи, поэтому список должен быть уникальным.

мой контроллер:

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> 

Я уверен, что у вас может быть более элегантное приложение плотва к этому, используя Larvel's Eloquent ORM

Смежные вопросы