我目前正在向我的网站添加一项功能,询问问题并提供多项选择答案。
我的答案模型的代码如下:
protected $table = 'answer';
protected $primaryKey = 'answer_id';
protected $fillable = ['question_id'];
public function question()
{
return $this->belongsTo('App\Question','question_id')->distinct();
}
我的观点是:
@foreach ($answers as $answer)
<h2>{{$answer->question->question}}</h2>
<p>{{$answer->answer}}</p>
@endforeach
我的控制器是:
$answers = Answer::with('question')->first()->get();
显示如下:
问题1
在这里回答
问题1
在这里回答2
问题1
在这里回答3
问题2
2回答
问题2
2回答2
问题2
2回答3
我想只展示一次问题。我是Laravel的新手。
答案 0 :(得分:1)
您需要翻转它,然后首先从数据库中获取您的问题:
$questions = Question::with('answers')->get();
这当然假设您已经在问题模型中设置了hasMany
关系。
然后在您的视图中,您将有两个循环:
@foreach ($questions as $question)
<h2>{{$question->question}}</h2>
@foreach ($question->answers as $answer)
<p>{{$answer->answer}}</p>
@endforeach
@endforeach
请注意您首先循环问题并显示问题一次,然后循环查看每个问题的答案。