繼承人我在做什麼。Laravel 5.2渴望loading加載中沒有工作
$question = ForumQuestion::where('link',$ques)->with('answers')->first();
$answers = $question->answers;
$answers->load('user');
//return $answers;
return view('forum.question', compact('question','answers'));
$answers->load('user');
急切加載答案的相應用戶。
public function user()
{
if ($this->user_type == 'student') {
return $this->belongsTo(Student::class, 'user_id');
}else{
return $this->belongsTo(Teacher::class, 'user_id');
}
}
但問題是$ this-> user_type得到某種靜態。如果我的第一個答案有user_type = 'teacher'
,那麼在假設它爲teacher
的每個查詢中,即使它的某些時間改變爲student
。 爲什麼它是靜態的?如果我不急於加載,效果很好。
爲什麼你不嘗試做嵌套的急切加載'$ question = ForumQuestion :: where('link',$ ques) - > with('answers.user') - > first();'這會得到用戶急於加載的所有答案 –
@FabioAntunes嵌套的急切加載會導致null'user',因爲在嵌套熱切加載時,查詢先構建然後執行。這導致$ this爲null,因此不會有'$ this-> user_type',這會使if語句始終爲false,並導致錯誤或空用戶。 – jovanpreet
這是因爲你正在以錯誤的方式定義你的關係,看看[多態關係](https://laravel.com/docs/master/eloquent-relationships#polymorphic-relations) –