所以我在Laravel中用这个语句雄辩地查询了。它们之间的关系都已正确设置,我的问题是将获取的数据限制为“ with”数据中的某些列。
如您所见,“ userIsFollowingAuthor”关系表是我作为关系包括的3个表之一。
但是,如何从这些单独的关系中仅选择特定的列?例如,我只需要上述关系中的“ first_name”和“ avatar_id”,而不是完整的数据集。
$user_dashboard_data = User::with('profile', 'favorites', 'userIsFollowingAuthor')->find($user->id);
答案 0 :(得分:0)
您可以通过在with数组输入中传递闭包作为值和关系作为键来限制热切的加载查询:
User::with(['userIsFollowingAuthor' => function($q) {
$q->select(['column1', 'column2']);
});
但是,您使用的是find(检索一个模型),因此急于加载确实没有任何好处。
您可以使用关系方法查询任何关系:
$user->userIsFollowingAuthor()->select(['column1', 'column2'])->get();