0
我有一个用户表和一个组表。 我建立了多对多的用户/组关系。 当我运行Laravel获取所有相关型号的多个型号
$users = User::where("id",'=',6)->first()->groups;
,我得到正确的组。
但我会遇到我的查询将在一个用户阵列中的情况。 如何获得所有使用laravel关系的用户的所有组?
我有一个用户表和一个组表。 我建立了多对多的用户/组关系。 当我运行Laravel获取所有相关型号的多个型号
$users = User::where("id",'=',6)->first()->groups;
,我得到正确的组。
但我会遇到我的查询将在一个用户阵列中的情况。 如何获得所有使用laravel关系的用户的所有组?
eMAD的建议不起作用,因为Laravel只允许在对象上执行关系函数而不在对象数组上执行。你想要的harvey是一个叫做急切加载的概念。
$users = User::whereIn('id', [6, 7, 8])->with('groups')->get();
使用此代码,您将可以在代码中访问$user->groups->someInfo
。快乐编码
你能用英文告诉我,功能在做什么? 它是否仍然利用我在组和用户模型中定义的关系? –
我还有一个与此相关的问题。 我也有一个名为ACTION的表,其中有一个名为VOTE的表,有许多关系。现在,VOTE表在名为子项的表上具有一对多的关系。 是否有可能为一组给定的操作获取所有投票行及其子项行? –
当您使用User :: findOrFail(1)时,它仅加载用户模型,而不加载与其相关的其他模型。要加载所有模型,可以使用with('parameter')方法加载相关模型。 with函数的参数在模型类中声明的函数的名称就像您猜测的一样。其实你可以连锁加载甚至遥远的相关模型。例如:User :: with('groups.Members')。这可以让你调用$ user-> groups-> members,假设组模型可以与成员模型相关联。希望你能得到它 – alaboudi