【发布时间】:2019-01-22 21:28:33
【问题描述】:
是否有办法在急切加载时为 Eloquent 关系设置别名?例如,我可能有如下查询。
User::with(['roles' => function ($query) { $query->where('type', ADMIN); }]);
但是,如果我也想预先加载状态为 ACTIVE 的角色怎么办?我能想到的唯一方法是复制 User 模型上的角色关系并给它一个不同的名称。查询将如下所示。
User::with([
'roles' => function ($query) { $query->where('type', ADMIN); },
'otherRoles' => function ($query) { $query->where('status', ACTIVE) }]
);
我可以在我的用户模型上使用诸如 adminRoles 和 activeRoles 之类的方法,但这真的不是我想要的,因为有很多可能的参数。
【问题讨论】: