在Laravel上的同一视图上显示有关多个表的信息

时间:2017-02-19 01:58:56

标签: php database laravel

我试图显示问题列表及其各自的答案。我将所有内容存储在3个不同的数据库表中,问题>答案类型>可能的答案列表。

这就是我在控制器上所做的:

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

在测试数据库上我只有一个问题,可能的答案是“是”或“否”。但是,我没有看到一个问题和两个可能的答案,而是两次得到相同的问题,每次都有一个不同的答案。< / p>

1 个答案:

答案 0 :(得分:0)

检查此查询:

Button

您正在使用$questions = DB::table('questions') ->join('typeAnswers', 'typeAnswers.id', '=', 'questions.answer_id') ->join('answers', 'answers.typeAnswers_id', '=', 'typeAnswers.id') ->get(); 加入questions表格,因此结果如下:

typeAnswers

在视图中,所需的结果如下:

Q1    A1
Q1    A2

这样您就可以在一个问题下显示答案。相应地修改您的查询。