使用Laravel中的模型关系获取数据

时间:2019-04-23 09:39:03

标签: php laravel

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

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

  

>>> $ user = App \ User :: find(15);
  =>应用程序\用户{#2947
       id:15,
       名称:“第一”,
       电子邮件:“ first@example.com”,
       email_verified_at:空,
       created_at:“ 2019-04-19 17:10:59”,
       Updated_at:“ 2019-04-19 17:10:59”,}
  >>> $ user->教师
  => App \ teacher {#2948
       sdrn:856,
       名称:“第一”,
       姓:null,
       deptname:null,
       deptcode:null,
       名称:null,
       电子邮件:“ first@example.com”,
       手机:空,
       cc:“ N”,
       created_at:“ 2019-04-19 17:10:59”,
       Updated_at:“ 2019-04-19 17:10:59”,}

因此,由于修补程序命令从教师表带来正确的行,所以关系一直正常工作。

但是,当我通过Auth库以

的身份登录教师时
 $user = Auth::user();
 $teacher = $user->teacher();
 dd();

dd()的输出显示类似

  

属于{{270▼
#child:用户{#273▶}
#foreignKey:   “ email”
#ownerKey:“ email”
#relationName:“老师”
#query:构建器{#267▶}
#parent:用户{#273▶} < br /> #related:老师{#262▶}
#withDefault:null
}

这不是我所需要的。我需要将相应的行从教师表传递到表单。修补匠可以提供所需的结果,但是Auth:user()返回了一些有趣的对象。

我想念什么?

2 个答案:

答案 0 :(得分:0)

您可以执行以下任一操作:

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

获取关系的第一个(也是唯一的)结果,或者获取该关系的“魔术”快捷方式:

$user->teacher

答案 1 :(得分:0)

希望这对您有帮助

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