Не знаю что решение логичнее, но я сделал следующее:
Для того что бы избежать постоянное обращение к базе за информацией о пользователе и к таблице за фото, я воспользовался:
$AllQuestions = Question::with('user', 'file')->get();
В итоге в
$AllQuestions формируется массив из 3-х таблиц.
В модели
Question
Сделал следующее:
class Question extends Model
{
//
public function user()
{
return $this->belongsTo('App\User');
}
public function file(){
return $this->hasOne('App\Models\File','user_id','user_id')->where('module_id', 'user_profile');
}
}
И я явно указал для таблицы
files поля для связи!
'user_id','user_id'
Иначе по умолчанию связи не будет!
После чего в представление можем передать рабочий массив:
return view('questions.index', compact('AllQuestions'));
Запросы уменьшились до 6 вместо почти 70 если например 20 юзеров.
На мысль навела доку.
Eager Loading Multiple Relationships