laravel
  • laravel-5
  • entity-relationship
  • 2016-03-05 27 views 0 likes 
    0

    我有一个用户表和一个组表。 我建立了多对多的用户/组关系。 当我运行Laravel获取所有相关型号的多个型号

    $users = User::where("id",'=',6)->first()->groups; 
    

    ,我得到正确的组。

    但我会遇到我的查询将在一个用户阵列中的情况。 如何获得所有使用laravel关系的用户的所有组?

    回答

    3

    eMAD的建议不起作用,因为Laravel只允许在对象上执行关系函数而不在对象数组上执行。你想要的harvey是一个叫做急切加载的概念。

    $users = User::whereIn('id', [6, 7, 8])->with('groups')->get(); 
    

    使用此代码,您将可以在代码中访问$user->groups->someInfo。快乐编码

    +0

    你能用英文告诉我,功能在做什么? 它是否仍然利用我在组和用户模型中定义的关系? –

    +0

    我还有一个与此相关的问题。 我也有一个名为ACTION的表,其中有一个名为VOTE的表,有许多关系。现在,VOTE表在名为子项的表上具有一对多的关系。 是否有可能为一组给定的操作获取所有投票行及其子项行? –

    +1

    当您使用User :: findOrFail(1)时,它仅加载用户模型,而不加载与其相关的其他模型。要加载所有模型,可以使用with('parameter')方法加载相关模型。 with函数的参数在模型类中声明的函数的名称就像您猜测的一样。其实你可以连锁加载甚至遥远的相关模型。例如:User :: with('groups.Members')。这可以让你调用$ user-> groups-> members,假设组模型可以与成员模型相关联。希望你能得到它 – alaboudi

    相关问题