Я новичок в создании таблиц соединений с помощью 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;
}






Когда вы делаете get(), он возвращает коллекцию. Ты можешь сделать :
$vu_data = Application::findOrFail($id);
$student = $vu_data->StudentInfo;
$user = $student->User;
Обновил мой ответ, пожалуйста, проверьте
Большое спасибо. Требуется ли вернуть $this->belongsTo(Application::class);?
Да, вы должны принадлежать к пользовательской модели
$vu_data2 = $vu_data->StudentInfo()->get();
возвращает коллекцию, а не только одну модель приложения. Измените «get()» на «first()», и это исправит вашу первую ошибку. Итак, измените:
$vu_data = Application::where('id', $id)->get();
к
$vu_data = Application::where('id', $id)->first();
спасибо, если я тоже хочу присоединиться к пользователям, то что должно быть?