2017-02-23 30 views
0

有很多答案我想獲取由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()]); 
    } 

我已經試過幾個其他的方式做,但沒有奏效

回答

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> 

會工作得很好。

+0

謝謝羅伯特,這工作。我還想知道,在答案表中有一列user_id與用戶表中的id列相關聯。我如何獲得已回答特定問題的用戶名稱。 Thanx – waq

+0

如果你有正確的關係設置,你可以在答案模型上做' - > user-> name'。但在這種情況下,請檢查' - > with()'的用法。這將激發所需的模型並允許點符號。這會節省你很多的疑問:)例如:'Question :: with('answers.user') - > find($ id);' – Robert

+0

謝謝羅伯特的幫助,也工作過:) – waq

相關問題