Ошибка: метод Illuminate\Database\Eloquent\Collection::StudentInfo не существует. (Ларавел 5.6)

Я новичок в создании таблиц соединений с помощью Eloquent. Я хочу присоединиться к 3 столам. Но это показывает мне ошибку. В чем моя ошибка, если кто-нибудь заметит, это будет полезно для меня. Вот столы.... В 1-й таблице Приложения (id, u_id, имя_программы) 2-й таблице StudentInfos(id,u_id,.....) 3-й таблице пользователи(идентификатор,.....)

в модели приложения

public function StudentInfo()
{
    return $this->hasOne('App\StudentInfo', 'u_id', 'u_id');

}

в модели StudentInfo

public function User()
{
    return $this->hasOne('App\user', 'u_id', 'id');

}

От контроллера

 public function view_application($id)
  {
    $vu_data = Application::where('id', $id)->get();
    $vu_data2 = $vu_data->StudentInfo()->get();
    return $vu_data2;

  }
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
1 133
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Когда вы делаете get(), он возвращает коллекцию. Ты можешь сделать :

$vu_data = Application::findOrFail($id);
$student = $vu_data->StudentInfo;
$user = $student->User;

спасибо, если я тоже хочу присоединиться к пользователям, то что должно быть?

Mujahidur Rahman Mithun IUB 22.02.2019 17:43

Обновил мой ответ, пожалуйста, проверьте

Mihir Bhende 22.02.2019 17:46

Большое спасибо. Требуется ли вернуть $this->belongsTo(Application::class);?

Mujahidur Rahman Mithun IUB 22.02.2019 17:49

Да, вы должны принадлежать к пользовательской модели

Mihir Bhende 22.02.2019 17:54
$vu_data2 = $vu_data->StudentInfo()->get();

возвращает коллекцию, а не только одну модель приложения. Измените «get()» на «first()», и это исправит вашу первую ошибку. Итак, измените:

$vu_data = Application::where('id', $id)->get();

к

$vu_data = Application::where('id', $id)->first();

Другие вопросы по теме