Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Итак, есть несколько таблиц:
Архив(куча полей)
День(свои поля и связь 1 к 1 к архиву)
Сессия(свои поля и связь 1 к 1 к дню)
Лекция(свои поля и связь 1 к 1 к сессии)
Тег(просто название)
Тег лекции(промежуточная таблица с айди лекции и тега)
И вот есть страница(вкладка архива, то есть передаётся id архива в get) где можно создавать теги для лекций.
Вот код, где по сути берётся архив, через него подбираются сессии, через них лекции, которые передаются в поле select формы.
$arrLectures = [];
$form = new Form(new ArchiveTagLectureRel);
$idParent = request()->input('idParent');
if ($idParent) {
$archive = Archive::findOrFail($idParent);
if ($archive) {
$days = $archive->days;
if (count($days) > 0) foreach ($days as $day) {
$sessions = $day->sessions;
if (count($sessions) > 0) foreach ($sessions as $session) {
$lectures = $session->lectures;
if (count($lectures) > 0) foreach ($lectures as $lecture) {
$arrLectures[$lecture->id] = $lecture->title;
}
}
}
}
}
$form->select('lecture_id', 'Lecture')->options($arrLectures)->rules('required');
Работает хорошо, однако я понимаю, что по факту это куча раздельный скль запросов, что не ок для быстродействия. Можно ли как-то сделать один qloquent запрос, который бы вернул мне через связи лекции?
Изменено Kirir (24.11.2018 15:30:30)
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Пока, думаю, что стоило сессии и лекции выделить столбцы под айди архива, тогда бы и тег мог сразу получать лекции архива и лекция сессию. Ток, увы, уже поздновато это вводить, т.к создана куча записей .
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети