Error : Method Illuminate\Database\Eloquent\Collection::StudentInfo does not exist. (Laravel 5.6)
Error : Method Illuminate\Database\Eloquent\Collection::StudentInfo does not exist. (Laravel 5.6)
我刚开始加入 table 与 Eloquent。我想加入 3 tables。但它告诉我错误。我的错误是什么,如果有人注意到它会对我有所帮助。这是 tables....
在第一个 table Applications(id,u_id,program_name) 第二个 table StudentInfos(id,u_id,.....) 3rd table users(id,.....)
在应用程序模型中
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()
时,它 returns 是一个集合。你可以这样做:
$vu_data = Application::findOrFail($id);
$student = $vu_data->StudentInfo;
$user = $student->User;
$vu_data2 = $vu_data->StudentInfo()->get();
正在返回一个集合,而不仅仅是一个应用程序模型。将 "get()" 更改为 "first()",这将修复您的第一个错误。所以改变:
$vu_data = Application::where('id', $id)->get();
到
$vu_data = Application::where('id', $id)->first();
我刚开始加入 table 与 Eloquent。我想加入 3 tables。但它告诉我错误。我的错误是什么,如果有人注意到它会对我有所帮助。这是 tables.... 在第一个 table Applications(id,u_id,program_name) 第二个 table StudentInfos(id,u_id,.....) 3rd table users(id,.....)
在应用程序模型中
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()
时,它 returns 是一个集合。你可以这样做:
$vu_data = Application::findOrFail($id);
$student = $vu_data->StudentInfo;
$user = $student->User;
$vu_data2 = $vu_data->StudentInfo()->get();
正在返回一个集合,而不仅仅是一个应用程序模型。将 "get()" 更改为 "first()",这将修复您的第一个错误。所以改变:
$vu_data = Application::where('id', $id)->get();
到
$vu_data = Application::where('id', $id)->first();