Laravel关系设置

时间:2017-03-01 09:05:01

标签: php laravel laravel-5

我正在进行Laravel安装,其中包括(其中包括)

  • 教师(表:用户(cols:id,name,type),model:User,users.type = 2)
  • 学生(表:用户(id,姓名,类型),型号:User,users.type = 1)
  • 学校(表:学校(名称,姓名),型号:学校)
  • 学生收藏(表:student_collection(id,name),型号:StudentCollection)
  • &安培; table student_collections_users用于将学生用户链接到集合(model:StudentsCollections,columns id,user_id,collection_id)

我已经设法建立了一些关系,但无法理解我的想法

  • 哪位老师教学生
  • 学生属于哪个馆藏

目前我正在尝试使用

获取馆藏
//User.php
public function collections() {
    $collection = $this->hasManyThrough('\App\StudentsCollections', '\App\User', 'id', 'user_id');
    return $collection;
}

//Controller
$user = \App\User::find($id);
$user->collections = $user->collections();

但它只返回集合的id。如何获取每个集合的完整数据对象?

我正在使用Laravel 5.3。

1 个答案:

答案 0 :(得分:0)

首先,在您的示例代码中,表名是否正确?

我看到一个名为'students_collections'的表,但您的belongsToMany有一个表名(第二个参数)'student_collections_users'。我认为这是一个错字。

第二,什么会返回空结果?在User模型上调用collections方法或collections属性?你能添加一些示例代码吗?

第三:你在数据库中有实际数据(通过播种机或真实数据)?我知道这是显而易见的,但有时人们往往会忘记明显的......: - )