У меня есть четыре модели -User -Question -Answer -Comment
Модель User содержит
public function questions(){
return $this->hasMany(Question::class);
}
public function answers(){
return $this->hasMany(Answer::class);
}
public function comments(){
return $this->hasMany(Comment::class);
}
Модель вопроса содержит
public function users(){
return $this->belongsTo(User::class,'user_id','id');
}
public function answers(){
return $this->hasMany(Answer::class);
}
public function comments(){
return $this->hasMany(Comment::class);
}
//таблица вопросов имеет user_id
модель ответов содержит
public function questions(){
return $this->belongsTo(Question::class,'user_id','id');
}
public function users(){
return $this->belongsTo(User::class);
}
public function comments(){
return $this->hasMany(Comment::class);
}
// таблица ответов имеет user_id, question_id
модель комментариев содержит
public function questions(){
return $this->belongsTo(Question::class);
}
public function users(){
return $this->belongsTo(User::class);
}
public function answers(){
return $this->belongsTo(Answer::class);
}
// таблица ответов содержит user_id, question_id, answer_id
всякий раз, когда я получаю доступ к модели вопроса, я могу получить доступ к пользователю, ответу, комментарию, связанному с этим вопросом
, но я хочу получить подробную информацию опользователь, который отвечает на вопрос, а также детали пользователя, который прокомментировал ответ.
это мой контроллер
public function show($slug){
$questionData = Question::with('users','answers','comments')->where('slug',$slug)->first();
return view('questions.single',compact('questionData'));
}
но когда да, я делаю
@foreach($questionData->answers as $answer)
$answer->user_id;
//it retuns only the user_id from the answers table
//how can i turn this to the username
@endforeach
я хочу получить имя пользователя, который ответил на вопрос, а также имя пользователя, который прокомментировал ответ