我应该如何使用Laravel-Eloquent查询和使用关系


How should I use Laravel Eloquent queries and use relationships?

我有一个User模型,该模型belongsToDepartment

因此Department得到了idname字段。

在我得到的用户模型:

public function department() {
      return $this->belongsTo('Department');
}

这样,我可以做一些类似的事情:Auth::user()->department->name获取用户所属部门的实际名称。

然而,当我调用一些用户时,我无法找到最好的方法来获得包含其department属性和名称的多行。

我写道:

$users = User::all();
foreach ($users as $user) {
    $user -> department = Department::find($user->department_id)->name;
}

有更好的方法吗?

您可以急切地加载相关模型,以便只为所有用户加载一个数据库查询,并将其包含在JSON输出中:

$users = User::with('department')->get();

有关Laravel Docs 中热切加载的更多信息

您似乎已经了解了用户模型和部门模型之间的关系。所以你可以像使用Auth()一样调用它。

$users = User::all();
foreach ($users as $user) {
    echo $user->department->name ;
}