我目前正在我的网站上添加一个功能,可以提出问题并提供多项选择答案。
我的答案模型具有如下代码:
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
我只想展示一次问题。我是拉拉维尔的新手。
然后你需要翻转这个,首先从数据库中得到你的问题:
$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
请注意您如何首先循环浏览问题并显示问题一次,然后循环浏览每个问题的答案。