我希望得到所有用户:
$users=User::get();
之后我想要每个角色的名字。
foreach ($users as $user) {
return $user->roles->name;
}
但它会出错[{1}}
知道如何获取所有用户和角色的名称吗?
答案 0 :(得分:1)
您正尝试从多对多关系中访问单个项目:
由于用户有许多角色,您应该首先迭代其每个角色 并获取角色名称,或者简单地从Collection中取出第一个对象。
只需使用first()
:
$users = User::all();
foreach ($users as $user) {
return $user->roles->first()->name;
}
或者如果你想得到每一个:
foreach ($users as $user) {
foreach($user->roles as $role) {
echo $role->name;
}
}
希望这有帮助!
答案 1 :(得分:0)
$user->roles
是一个集合,你需要再做一次预告:
foreach($user->roles as $role)
return $role->name
答案 2 :(得分:0)
你可以查看这个:
$users = User::with('roles')->get();
$usersRolesNames = $users->roles->lists('name');