我应该如何使用Laravel Eloquent查询并使用关系?

时间:2015-03-02 06:54:36

标签: php laravel eloquent

我有一个 User 模型 belongsTo Department

因此,部门获得了 id 名称字段。

在用户模型中我得到了:

public function department() {

      return $this->belongsTo('Department');
}

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

但是,当我调用某些用户时,我无法找到获取包含其部门属性的多行的最佳方法。

我写道:

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

有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

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

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

More about eager loading in the Laravel Docs

答案 1 :(得分:1)

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

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