【问题标题】:Laravel relationships setupLaravel 关系设置
【发布时间】:2017-07-20 12:38:57
【问题描述】:

我正在安装 Laravel(除其他外)

  • 教师(table:users (cols: id, name, type), model:User, users.type = 2)
  • 学生(表:用户(id、姓名、类型)、模型:用户、users.type = 1)
  • 学校(表:学校(id,名称),型号:学校)
  • 学生集合(表:student_collection (id, name),模型:StudentCollection)
  • & 表 student_collections_users 用于将学生用户链接到集合(模型:StudentCollections、列 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。

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

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

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

    其次,什么返回空结果?在 User 模型上调用 collections 方法或 collections 属性?您可以添加一些示例代码吗?

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

    【讨论】:

    • 我稍微修改了问题,进一步但不是一路。中间表名中有错字。第三:是的,我可以通过原始数据库查询获得正确的结果,但我正在寻找一种更简洁的方法,让我的头脑围绕“Laravel 心态”:)
    猜你喜欢
    • 2017-06-25
    • 2017-10-01
    • 2018-12-08
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多