【发布时间】:2014-07-15 14:28:32
【问题描述】:
如果我有一个 Users 表和 Tags 表,以及 Belongs To Many 关系的数据透视表,我如何使用 Eloquent 仅加载关系的 ID?
如果我执行User::with('tags'),这将在数据透视表上进行连接,同时在标签表上进行连接。但是,这在我的情况下是不必要且低效的,因为我希望能够只从数据透视表中选择标签的 ID,而不是标签表中的其他列。换句话说,我只希望它从 Users 到 Users_Tags 进行一次联接。
谢谢。
【问题讨论】:
-
您想在多个模型上急切加载这些 ID?
-
是的,我想对多个模型(集合)或单个模型执行此操作。谢谢。
-
如果不加入数据透视表,则无法获取相关标签,因为关系存储在数据透视表中。
-
@WereWolf-TheAlpha 是的,我想将数据透视表 (Users_Tags) 与用户表连接起来。不是带有数据透视表的标签表。
-
要急切加载这种关系,您需要单独的数据透视表模型。虽然这应该不是问题,但您最终可能会得到不一致的结果,因为可能会删除在数据透视表上仍有行的标签。
标签: php mysql laravel laravel-4 eloquent