我有一個Laravel應用程序。我使用this包作爲角色和權限。它效果很好。Laravel在用戶列表中的作用
我現在想顯示一個所有用戶及其角色的表格。目前我正在通過UsersController中的以下定義來解決它。
public function listUsers()
{
$users_admin = Role::where('name', 'admin')->first()->users()->get();
$users_buyers = Role::where('name', 'buyer')->first()->users()->get();
$users_sellers = Role::where('name', 'seller')->first()->users()->get();
return view('admin.users.index', [
'users_admin' => $users_admin,
'users_buyers' => $users_buyers,
'users_sellers' => $users_sellers
]);
}
在視圖中,我然後有3個獨立的循環顯示3個表(管理用戶,買家和賣家)。
不用說,我不太喜歡這種方法,我最好有一張表顯示用戶的角色。
這樣的想法是,我可以寫在UsersController以下代碼(或類似):在我看來,包含單個的foreach載明下列
$users = User::all();
:
@foreach($users_sellers as $user)
<tr>
<td align="center" class="hidden-xs">{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->displayRole($user->id) }}</td>
</tr>
@endforeach
在上面的僞代碼,我已經定義了一個幫助器,它根據用戶標識檢索角色。問題是我無法弄清楚在輔助函數中放什麼東西?
注意:如果還有其他(更好的)方法不是助手,那也適用於我。
我也試過這個,但我總是得到「調用未定義的方法Illuminate \ Database \ Query \ Builder :: all()」 – wiwa1978
試試get:'$ users = User :: with('roles') - >的get();'。 – TheFallen
這工作。在視圖中,我正在執行以下操作:$ user-> roles [0] - > name來輸出角色名稱。這工作。但是如果有多個角色呢?那麼我應該迭代它們還是有更好的方法來顯示所有角色? – wiwa1978