【问题标题】:Obtaining data using model relationships in Laravel在 Laravel 中使用模型关系获取数据
【发布时间】:2019-09-12 12:38:34
【问题描述】:

我是第一次使用 Laravel 开发应用程序。我需要使用模型-表单绑定来填写表单,这需要将数据传递给表单。

现在我需要传递的数据在一个名为“教师”的表中。它有相应的模型和控制器。 users 表是标准的 Laravel 表。用户和教师通过“电子邮件”关联。我在 Tinker 上测试了 relashionships,它显示了所需的输出,如下所示。

>>> $user = App\User::find(15);
=> 应用\用户 {#2947
编号:15,
名称:“第一”,
电子邮件:“first@example.com”,
email_verified_at:空,
created_at: "2019-04-19 17:10:59",
更新时间:“2019-04-19 17:10:59”,}
>>> $user->老师
=> 应用\老师 {#2948
sdrn: 856,
名称:“第一”,
姓氏:空,
部门名称:空,
部门代码:空,
名称:空,
电子邮件:“first@example.com”,
手机:空,
抄送:“N”,
created_at: "2019-04-19 17:10:59",
更新时间:“2019-04-19 17:10:59”,}

因此,由于修补程序命令从教师表中获取正确的行,因此关系正常工作。

但是,当我通过 Auth 库获取登录教师时

 $user = Auth::user();
 $teacher = $user->teacher();
 dd();

dd() 的输出显示类似

属于 {#270 ▼
#child: 用户 {#273 ▶}
#foreignKey: "email"
#ownerKey: "email"
#relationName: "teacher"
#query: Builder {#267 ▶}
#parent: User {#273 ▶}
#related : 老师 {#262 ▶}
#withDefault: null
}

这不是我需要的。我需要将教师表中的相应行传递给表单。 Tinker 给出了想要的结果,但 Auth:user() 正在返回一些有趣的对象。

我错过了什么?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    希望对你有帮助

    $user = Auth::user();
    $teacher = $user->teacher;  //this will load related article models as a collection
    dd($teacher);
    

    【讨论】:

      【解决方案2】:

      您可以:

      $user->teacher()->first()
      

      获取关系的第一个(也是唯一一个)结果,或为此提供“神奇”快捷方式:

      $user->teacher
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-17
        • 2016-08-20
        • 1970-01-01
        • 1970-01-01
        • 2017-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多