laravel - 如何在 Laravel 的三向枢轴上访问其他字段?
问题描述
这是我的架构的样子:
这个想法是用户在给定组中具有角色。当然,用户属于很多组,一个用户可以有多个角色(在不同的组中)
我正在尝试获取用户所属的所有组。
请原谅我没有使用约定将数据透视表命名为 groups_roles_users,我决定采用这种方式是为了便于阅读。
所以,在用户模型中我说:
public function groups() {
return $this->belongsToMany('\App\Group', 'roles_in_groups');
}
在我看来,我这样做:
@foreach ($user->groups as $group)
{{ $group->name }}
@endforeach
完美运行。
现在我想访问该roles
表。我想打印类似的东西:In {{ $group->name }} you're a {{ $group->role->name }}
,显然,它不是那样工作的。
如果我使用该pivot
属性,它只会给我user_id
and group_id
,甚至不会给我role_id
使用静态方法搜索的。
那么,我怎样才能做到这一点?
我正在使用 Laravel 5.7
解决方案
Maybe try:
public function roles() {
return $this->belongsToMany('\App\Role', 'roles_in_groups');
}
$user = \User::with(['roles','groups'])->first();
$role_name = $user->role->name
$group_name = $user->group->name
https://laravel.com/docs/5.7/eloquent-relationships#eager-loading
推荐阅读
- python - 创建一个 Python 类,它既可以返回自身的表示,也可以使用计算结果调用
- matlab - MATLAB 图形通过旋转 3D 对象严重缩放
- android - 如何使用新的 android jetpack 导航保存底部导航视图片段的状态?
- aws-lambda - 为什么“dotnet lambda deploy-function”不能从 Azure DevOps 工件源中提取包?
- android - Android导航组件:java.lang.IllegalStateException:还原期间的未知目的地
- vector - 需要帮助确定我的游戏的 2D 轨道
- git - Git 工作除了推送“服务器意外关闭网络连接”
- python - 如何使用 Selenium (Python3) 获取所有表格项?
- android - 我需要发布一个生产应用程序,同一个应用程序处于 alpha 模式
- sql-server - 尝试根据电话类型将电话号码列拆分为 3 个单独的列