У меня есть следующие таблицы:
Пользователи, Исследования, Study_User и Вопросы. Отношения:
Многие ко многим между пользователями и исследованиями через study_user.
Исследования вопросы один ко многим
Может кто-нибудь, пожалуйста, объясните мне, что это делает запрос сделать? Приносит ли он все Вопросы, относящиеся к исследованиям, частью которых является определенный пользователь?
public function questions(){
$builder = Question::
groupBy('questions.id');
$builder = $builder
->leftjoin('studies', 'studies.id', '=', 'questions.study_id')
->leftjoin('study_users', 'studies.id', '=', 'study_users.study_id')
->where('study_users.user_id', '=', $this->id)
->where('studies.starts_at', '<=', Carbon::now())
->where('studies.ends_at', '>=', Carbon::now())
->select('questions.*');
return $builder;
}
Эта функция затем называется
$user = Auth::user();
$user->questions()->get();
Хорошо, и теперь другой вопрос будет :
Предположим, что мы добавили еще одну таблицу под названием Модули, в которой: изучаются модули один ко многим, а затем модули вопросы один ко многим. Так что мы нарушаем прямую связь между исследованиями и вопросами. Как запрос должен измениться, чтобы получить те же результаты?