我希望得到所有用戶:Laravel多對多關係艦 USERS -ROLES
$users=User::get();
之後,我想每一個角色的名稱。
foreach ($users as $user) {
return $user->roles->name;
}
但它給出了一個錯誤Trying to get property of non-object
任何想法如何獲取名稱爲所有用戶和角色?
我希望得到所有用戶:Laravel多對多關係艦 USERS -ROLES
$users=User::get();
之後,我想每一個角色的名稱。
foreach ($users as $user) {
return $user->roles->name;
}
但它給出了一個錯誤Trying to get property of non-object
任何想法如何獲取名稱爲所有用戶和角色?
你正試圖從許多訪問一個項目,以一對多的關係:
作爲一個用戶有很多角色,你應該首先遍歷它的每個角色 並獲得角色名稱,或採取了簡單的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;
}
}
希望這有助於!
$user->roles
是一個集合,你需要做一個更多的foreach:
foreach($user->roles as $role) return $role->name
您可以檢查這一項:
$users = User::with('roles')->get();
$usersRolesNames = $users->roles->lists('name');
它與所有:) –
同我已經更新答案! –
它的作品,非常感謝你! –