#laravel #voyager
#laravel #voyager
Вопрос:
Используя Laravel Voyager, у меня есть взаимосвязь «Имеет много»:
В курсе много преподавателей.
Во внутреннем интерфейсе все в порядке, но если я попытаюсь получить информацию во внешнем интерфейсе, я получу только значение в таблице, а не отношение, поэтому на выходе получается что-то вроде:
0
id 1
teachers_id null
name "Math"
1
id 2
teachers_id null
name "English"
Текущий код в веб-маршрутизации:
Route::get('/course', function () {
$co= AppCourse::all();
return $co;
});
Как я могу получить правильный вывод?
teachers_id Xav, Titus
Комментарии:
1. Что вы получаете в качестве неправильного вывода? Также ваш вывод, похоже, отсутствует в вашем примере ввода.
2. Если отношения между моделями хорошо выстроены, это должно быть
$co = AppCourse::with('teachers')->get();
3. @Tpojka, спасибо, это работает.
Ответ №1:
итак, как прокомментировал @Tpojka, вы можете начать с быстрой загрузки взаимосвязи при инициализации курса likeso $co = AppCourse::with('teachers')->get();
, после чего вам не нужно делать еще один ненужный вызов к вашей базе данных для преподавателей этого курса. Вы можете получить коллекцию всех преподавателей этого курса, просто вызвав $teachers = $co->teachers;
здесь $teachers теперь является коллекцией laravel, вы можете просто просмотреть ее на стороне клиента и отобразить информацию о преподавателях, которых вы хотите отобразить. Я надеюсь, это поможет.
Удачи и удачного кодирования. 🙂
Комментарии:
1. Спасибо, ответ также немного проверен при быстрой загрузке.