2017-02-19 8 views
0

質問とその回答のリストを表示しようとしています。私はすべての3つのデータベーステーブル、質問の答えのタイプ>可能な回答のリストに格納します。Laravelの同じビューに複数のテーブルに関する情報を表示

これは私がコントローラーに何をやったかである:

public function show() 
{ 
    $questions = DB::table('questions') 
     ->join('typeAnswers', 'typeAnswers.id', '=', 'questions.answer_id') 
     ->join('answers', 'answers.typeAnswers_id', '=', 'typeAnswers.id') 
     ->get(); 

    return view('questions.showquestions', ['questions' => $questions]); 
} 

私はすべての質問を表示するにはforeachの反復を使用してビューの場合:データベースで

@extends('welcome') 

@section('content') 
    @foreach($questions as $question) 
     <div class="panel panel-default"> 
      <div class="panel-heading"> 
       <h3 class="panel-title">{{$question->statement}}</h3> 
      </div> 
      <div class="panel-body"> 
       {{$question->value}} 
      </div> 
     </div> 
    @endforeach 
@endsection 

テストのために私はちょうど可能な答えは「はい」または「いいえ」です。しかし、1つの質問と2つの可能な回答を見るのではなく、同じ質問を2回、1つの異なる答えを得る。

+0

質問に2つの回答があるため、同じ質問が2回表示されます。このソリューションを実装してみてください:http://stackoverflow.com/questions/21387696/how-to-concatenate-strings-from-multiple-rows-in-one-column-inner-join-in-one – Ditto

+0

'Eloquent'? –

答えて

0

チェックこのクエリ:

$questions = DB::table('questions') 
->join('typeAnswers', 'typeAnswers.id', '=', 'questions.answer_id') 
->join('answers', 'answers.typeAnswers_id', '=', 'typeAnswers.id') 
->get(); 

あなたがtypeAnswersquestionsテーブルに参加しているので、ここでの結果は以下のようないくつかのものです:

​​

、ビューに必要な結果は次のようである:

Q1 [A1, A2] 

1つの質問の回答を表示できるようにします。それに応じてクエリを変更します。

関連する問題