Я изо всех сил стараюсь разбить на страницы результаты отношений «многие ко многим» в Laravel.Я хочу разбить комбинацию на страницы: не 1 курс с 10 доступностями и наоборот.Я хочу 10 курсов с 10 доступными.Это просто, если вы запрашиваете таблицу отношений, но я хочу упорядочить по полю таблицы (дата доступности).
Структура базы данных (упрощенно)
courses
id - integer
name - string
course_availability //relation table
course_id - integer
availability_id - integer
availability
id - integer
date - date
Модель доступности имеет область действия с активными датами и упорядочена по дате, в нее включены отношения CourseAvailability.
Попытки:
Просмотр доступности Проблема: я получаю 1 доступность с несколькимикурсы (100 +)
Availability::whereHas('courseAvailability', function ($q) use($course_ids) {
$q->whereIn('courses_id', $course_ids);
})->with('courseAvailability' => function($q) use($course_ids) {
$q->whereIn('courses_id', $course_ids);
}])->forPage(1, 10)->get();
Просмотр доступности курса Проблема: сортировка по 10 результатам, а не по фактическим данным, значения отношений
CourseAvailability::whereIn('courses_id', $course_ids)
->whereIn('availability_id', $availability_ids)
->forPage(1, 10)->get()->sortBy('availability.date');