【发布时间】:2026-01-18 22:50:01
【问题描述】:
我注意到 Laravel 雄辩的模型的一点是,它似乎对关系运行单独的查询。假设您有一个员工模型,其中包含 4 种不同的关系部门、客户、商店和经理。
现在,假设您在表格中显示视图中所有员工的列表:
@foreach($employees as $employee)
<tr>
<td> {{$employee->department->name}} </td>
<td> {{$employee->client->name}} </td>
<td> {{$employee->store->name}} </td>
<td> {{$employee->manager->name}} </td>
</tr>
@endforeach
每次调用 $employees->relationship->whatever 时,都会调用数据库。为什么?如果您显示 100 名员工,您将运行 400 个查询。
我的问题是:有什么好的方法可以做到这一点?使用查询生成器并进行连接而不是使用 Eloquent?改用 CakePHP?哈哈。
【问题讨论】:
-
如果你是Eager Loading,你就算错了,有4个关系的员工就是5个查询,不管返回多少员工记录;虽然不一定像连接一样高效,但代码更简洁
-
嗯,这比预期的要容易,哈哈。非常感谢伙计们。