【问题标题】:Show information about several tables on the same view on Laravel在 Laravel 的同一视图上显示有关多个表的信息
【发布时间】:2017-02-19 01:58:56
【问题描述】:

我正在尝试显示问题列表和他各自的答案。我将所有内容存储在 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

在用于测试的数据库中,我只有一个问题,可能的答案是是或否。但我没有看到一个问题和两个可能的答案,而是两次得到相同的问题,每次得到一个不同的答案。

【问题讨论】:

标签: php database laravel


【解决方案1】:

检查这个查询:

$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

查看所需的结果如下:

Q1    [A1, A2]

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    相关资源
    最近更新 更多