Php 雄辩的拉威尔如何加入拉威尔的3表?

Php 雄辩的拉威尔如何加入拉威尔的3表?,php,laravel,laravel-5,database-design,eloquent,Php,Laravel,Laravel 5,Database Design,Eloquent,如何使用laravel 5中的Elount从3表中获取一些数据?我有3张桌子,团队,董事会,用户 团队模式: public function member() { return $this->belongsToMany(User::class) ->withPivot('status','user_role') ->withTimestamps(); } public function boards()

如何使用laravel 5中的Elount从3表中获取一些数据?我有3张桌子,团队,董事会,用户

团队模式:

public function member()
{
    return $this->belongsToMany(User::class)
                ->withPivot('status','user_role')
                ->withTimestamps();
}


public function boards()
{
    return $this->belongsToMany(Boards::class)->withTimestamps();;
}
板模型

public function member()
{
    return $this->belongsToMany(User::class)
                ->withPivot('status','user_role')
                ->withTimestamps();
}

public function team()
{
    return $this->belongsToMany(Team::class)
                ->withTimestamps();
}
表结构:

团队

团队用户透视表

id
user_id
team_id
董事会

id
board_name
用户数据透视表

id
boards_id
user_id
这些板属于团队,我想获取属于团队ex:team a的板的数据,该团队ex:team a分配给用户ex:user1,但同时也是团队a的成员。
我怎样才能做到这一点呢?

根据您最近的评论:

您不需要直接将用户和线路板联系起来。这可以从用户m--m团队的关系中访问。 一个董事会属于一个团队,一个团队可以有多个董事会。这是一种关系:团队m---1董事会 因此,表的结构应如下所示:

users
=====
    - id    
    - ...

teams
=====
    - id
    - team_name

team_user
=========
    - id
    - team_id
    - user_id
    - status
    - user_role

boards
======
    - id
    - team_id
    - board_name
然后你的关系:

User.php

Team.php

Board.php

因此,现在您可以访问与用户特定团队相关的板,执行以下操作:

$user_boards = User
                 ::find(1) // getting a User
                 ->teams() // accessing the Teams relationship
                 ->where('team_name', '=', 'My Team Name') // Constraining
                 ->first() // accessing the Team record
                 ->boards // getting the boards.
除此之外,您还可以在用户模型中添加快捷方式以访问电路板:

User.php

然后在控制器中或任何您想要的地方:

$user_boards = User::find(1)->boardsOfTeam('My Team Name');

当然,这是完全可选的。

你说董事会属于一个团队。因此,与Board_User表相关的每个用户都属于该团队,对吗?@HCK是的,没错,但并非所有团队成员都被分配到该董事会。所以我想要只分配给同时也是该团队成员的用户的板还有,一个板属于一个团队还是可以属于多个团队?@HCK 1 Board只属于一个团队,但一个团队可以有多个板
public function members()
{
    return $this
       ->belongToMany(User::class)
       ->withPivot('status','user_role');
}

public function boards()
{
    return $this->hasMany(Board::class);
}
public function team()
{
    return $this->belongsTo(Team::class);
}
$user_boards = User
                 ::find(1) // getting a User
                 ->teams() // accessing the Teams relationship
                 ->where('team_name', '=', 'My Team Name') // Constraining
                 ->first() // accessing the Team record
                 ->boards // getting the boards.
...

public function boardsOfTeam($teamName)
{
    return $this
       ->teams()
       ->where('team_name', '=', $teamName)
       ->first()
       ->boards;
}
$user_boards = User::find(1)->boardsOfTeam('My Team Name');