如何使用雄辩的“ User :: with”查询获取Laravel中的某些列?

时间:2018-10-22 18:58:34

标签: mysql laravel eloquent

所以我在Laravel中用这个语句雄辩地查询了。它们之间的关系都已正确设置,我的问题是将获取的数据限制为“ with”数据中的某些列。

如您所见,“ userIsFollowingAuthor”关系表是我作为关系包括的3个表之一。

但是,如何从这些单独的关系中仅选择特定的列?例如,我只需要上述关系中的“ first_name”和“ avatar_id”,而不是完整的数据集。

$user_dashboard_data = User::with('profile', 'favorites', 'userIsFollowingAuthor')->find($user->id);

1 个答案:

答案 0 :(得分:0)

您可以通过在with数组输入中传递闭包作为值和关系作为键来限制热切的加载查询:

User::with(['userIsFollowingAuthor' => function($q) {
    $q->select(['column1', 'column2']);
});

但是,您使用的是find(检索一个模型),因此急于加载确实没有任何好处。

您可以使用关系方法查询任何关系:

$user->userIsFollowingAuthor()->select(['column1', 'column2'])->get();