我想获取由ID的问题,它有多个答案
问题描述:
有很多答案我想获取由ID的问题,它有多个答案
class Question extends Model
{
public function answers()
{
return $this->hasMany('App\Answer');
}
}
也是我答的模式,在这个每个答案都属于一个问题,我有问题的模式。
class Answer extends Model
{
//
public function question()
{
return $this->belongsTo('App\Question');
}
}
那么什么,我试图做的是我想它的ID,它应该有属于这个特定的问题,共同我想将它传递给我的看法了所有的答案获取的问题。
这是我迄今
public function show($id)
{
$questions = Question::with('questions')
->join('answers', 'answers.question_id' , '=' , $id)
->select('questions.id',
'questions.ask_question',
'answers.user_id',
'answers.aanswer',
'answers.created_at')
->where('questions.id' , '=', 'answers.question_id')
->get();
return view('pages.show', ['questions' => $questions , 'user' => Auth::user()]);
}
我已经试过几个其他的方式做,但没有奏效
答
你可以只取出的问题,并使用在视图中的关系。
public function show($id)
{
$question = Question::find($id);
if (! $question) {
abort(404);
}
return view('pages.show', compact('question'));
}
而在你的模型,你可以这样做:
<h2>{{ $question->question }}</h2>
<ul>
@foreach ($question->answers as $answer)
<li>{{ $answer->answer }}</li>
@endforeach
</ul>
顺便说一句,有没有需要分配Auth::user()
的观点,Auth
门面可有作为。您也可以使用帮助程序方法auth()
。
<p>{{ Auth::user()->email }}</p>
或
<p>{{ auth()->user()->email }}</p>
会工作得很好。
谢谢罗伯特,这工作。我还想知道,在答案表中有一列user_id与用户表中的id列相关联。我如何获得已回答特定问题的用户名称。 Thanx – waq
如果你有正确的关系设置,你可以在答案模型上做' - > user-> name'。但在这种情况下,请检查' - > with()'的用法。这将激发所需的模型并允许点符号。这会节省你很多的疑问:)例如:'Question :: with('answers.user') - > find($ id);' – Robert
谢谢罗伯特的帮助,也工作过:) – waq