当前位置: 首页 > 知识库问答 >
问题:

laravel雄辩:为一名成员获取所有组

松钊
2023-03-14

我有三张桌子:

user: id,name

group: id, name,parent_id用这个做的)//这是一个嵌套的类别

members: id,user_id,group_id,admin

group\u member:group\u id,member\u id我想获取一个成员的所有组(包括子组)。有没有可能通过拉拉维尔做到这一点?

组模式:

  public function parent()
  {
    $parent =  $this->belongsTo('App\Group',  'parent_id');
    return $parent;
  }

  public function children()
  {
    $children = $this->hasMany('App\Group',  'parent_id');
    //$children->wherePublish(1);
    return $children;
  }



  public function members()
  {
      return $this->hasMany(Member::class);
  }

  public function member()
  {
      return $this->belongsToMany(Member::class);
  }

和成员型号:

public function groups()
{
    return $this->belongsToMany(Group::class);
}

public function group()
{
    return $this->belongsTo(Group::class);
}

用户模型:

public function members()
{
    return $this->hasMany(Member::class);
}

我希望这样(返回所有相关组):

auth()->user()->members()->groups()->get();

我得到了这个错误:

“调用未定义的方法Illumb\Database\Eloquent\Relations\HasMany::groups()”


共有1个答案

宿文栋
2023-03-14

请使用以下查询:

 App/User::where('id',auth()->user()->id)->with('members.groups')->get();
 类似资料:
  • 我试着补充: 并用调用,但响应为空。

  • 我被一个简单的任务困住了。我只需要这通电话的结果 其中,是一个模型。我试过这个 但它不起作用。从表中获取所有数据并对其进行排序的更好方法是什么?

  • 始终使用Laravel Elotent而不是原始SQL有什么好处吗? 我有一个习惯,首先在phpMyAdmin中编写SQL来检查关系,然后将其翻译成雄辩的ORM。 有时,翻译成雄辩的ORM是痛苦和耗时的,尤其是从长而复杂的SQL查询进行翻译。与使用雄辩的ORM相比,我能够用SQL快速编写。

  • 我希望避免一直使用表名,而使用别名。

  • 嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!

  • 问题内容: 认为我是Laravel初学者 目标是:我有两个列,现在我需要在表中以同一行作为前缀。 例如(工作)…我有Mysql 和输出是 ID 我需要用laravel雄辩的方式来表示,因为这里Component是Model name。所以我尝试了类似的东西 但这不起作用。 我认为是因为语法错误。 请帮助我正确的语法。使用 。 注意:我进行了上述查询,将其称为Internet上可用的查询。 问题答案