gpt4 book ai didi

php - Laravel 4 表关系 Eloquent

转载 作者:行者123 更新时间:2023-11-29 00:07:39 25 4
gpt4 key购买 nike

我有四个表:

用户:id,用户名
角色: id, name
域 ID、标题
DomainsAssignedRolesUsers id, role_id, user_id, domain_id

我想获取域的所有用户角色。

我愿意:

User::find(1)->domains->first()->roles

但我获得了所有域角色,而不仅仅是我的用户。帮助我仅获取所选域的用户角色/

我的关系:

// User model:

public function rolesDomain() {
return $this->belongsToMany('Role', 'domainsAssignedRolesUsers', 'user_id', 'role_id');
}

public function domains() {
return $this->belongsToMany('Domain', 'domainsAssignedRolesUsers');
}

// Role model:

public function domains() {
return $this->belongsToMany('Domain', 'domainsAssignedRolesUsers');
}

// Domain model:

public function roles() {
return $this->belongsToMany('Role', 'domainsAssignedRolesUsers', 'domain_id', 'role_id');
}

public function users() {
return $this->belongsToMany('User', 'domainsAssignedRolesUsers', 'domain_id', 'user_id');
}

最佳答案

您想从特定域中获取与用户相关的所有角色?

所以这应该可以解决问题:

User::find(1)->rolesDomain()->where('domain_id', $specificID)->get()

但是如果您只想从用户的第一个域中获取角色。

User::find(1)->domains()->first()->roles()->get();

如果您只想检索用户的角色。

User::find(1)->rolesDomain()->get() 

如果您只想从与用户相关的每个域中检索所有角色。

User::find(1)->domains()->with('roles')->get()

即使 Eloquent 文档有一些示例,这个 orm 也非常直观。

关于php - Laravel 4 表关系 Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com