私は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つのループがあります。
言うまでもなく、私はこのアプローチが本当に好きではなく、理想的には自分の役割を持つユーザーを表示する単一のテーブルを持つことになります。で
@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
:私の見解は次のことを述べて単一のforeachが含まれていながら、
$users = User::all();
:
だからアイデアは、私ががUserControllerで、次のコード(または類似)を書き込むことができるということです上記の擬似コードの上で、私はuser-idに基づいてロールを取得するヘルパーを定義しました。問題は、私はヘルパー関数に何を入れるのか分からないのですか?注:ヘルパー以外の(より良い)メソッドがある場合、それは私にとってもうまくいくでしょう。
私はこれも実際に試しましたが、私はいつも "定義されていないメソッドを呼び出す\ Database \ Query \ Builder :: all()"を取得します – wiwa1978
get: '$ users = User :: with( 'roles') - > get(); '。 – TheFallen
これは動作します。ビューでは、ロールの名前を表示するために、$ user-> roles [0] - > nameを実行しています。これは機能します。しかし、複数の役割がある場合はどうなりますか?私はそれらを反復するか、そこにすべての役割を表示するためのより良い方法ですか? – wiwa1978