Как мне показать, что таблица имеет много взаимосвязей во внешнем интерфейсе?

#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. Спасибо, ответ также немного проверен при быстрой загрузке.