У меня есть небольшая, но запутанная проблема, я постараюсь объяснить ее как можно лучше.
Первая У меня 3 модели, Course
, Student
,и Quiz
,
- Учащийся и курс находятся в отношениях многие ко многим
- Учащийся и тест находятся в отношениях многие ко многим
- Тесты и курсыв отношении один ко многим соответственно
И у меня есть следующий запрос:
$course = Course::whereSlug($slug)->first(); // Some Course
$quizzes = $course->students()->with('quizzes'); // <-- Here lies the problem.
В последнем предложении я хочу отредактировать этот запрос, чтобы он был примерно таким:
$quizzes = $course->students()->with('quizzes)->where('course_id', $course->id);
Я хочу сделать это так, потому что Я хочу получить только тесты, связанные как с моделью Student
, так и с моделью Course
.
Чтобы дать вам полную картину , после этого я перебираю переменную $students
в компоненте vue следующим образом:
<div v-for="student in students"></div>
Я зацикливаюсь на модели Student
, потому чтоЯ также получаю другие свойства, кроме тестов.
Но, конечно, когда я делаю это как запрос, я в конечном итоге получаю все вопросы для всех учащихся, у которых есть course_id
= $course_id
.
Обязательно
Я хочу отфильтровать результаты, чтобы получить тесты студента ТОЛЬКО , если у них есть course_id
любого идентификатора текущего курса.