错误:方法Illuminate \ Database \ Eloquent \ Collection :: StudentInfo不存在。 (Laravel 5.6)

问题描述 投票:0回答:2

我是新手,与Eloquent建立联系表。我想加入3个表。但它显示我的错误。什么是我的错误,如果有人注意到它对我有帮助。这是表....在第一个表中的应用程序(id,u_id,program_name)第二个表StudentInfos(id,u_id,.....)第三个表用户(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;

  }
laravel laravel-5 laravel-5.2
2个回答
0
投票

当你做get()时,它会返回一个集合。你可以做 :

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

1
投票
$vu_data2 = $vu_data->StudentInfo()->get();

正在返回一个集合而不仅仅是一个应用程序模型。将“get()”更改为“first()”,这将修复您的第一个错误。所以改变:

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

$vu_data = Application::where('id', $id)->first();
© www.soinside.com 2019 - 2024. All rights reserved.