我想通过id获取问题,它有多个答案

时间:2017-02-23 15:54:28

标签: laravel-5 laravel-5.3

我的问题模型有很多答案

class Answer extends Model
{
    //
    public function question()
    {
        return $this->belongsTo('App\Question');
    }

}

我也有答案模型,每个答案都属于一个问题。

 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()]);
    }

所以我想要做的是我想通过它的id来获取一个问题,它应该包含属于这个特定问题的所有答案,我想把它传递给我的观点。

这是我到目前为止所做的事情

CASE

我已经尝试了其他几种方式但是没有用

1 个答案:

答案 0 :(得分:0)

您只需获取问题并在视图中使用关系。

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>

工作得很好。