[英]Laravel - How to get Entrust Roles of a specific user
我正在與Laravel合作並使用Zizaco Entrust 。
以管理員身份登錄時,我希望查看特定用戶的所有角色 。
我搜索了一段時間,但沒有找到任何線索......我怎樣才能使用Entrust或者我會使用SQL查詢?
在您的User類中添加
public function roles()
{
return $this->belongsToMany('Role','assigned_roles');
}
然后,您可以獲取特定用戶的所有角色
$user = User::with('roles')->find(1);
$roles = $user->roles;
如果您使用的是Zizaco \\ Entrust,則在用戶模型中不需要新的角色方法。 角色方法已存在於EntrustUserTrait類中。 你只需要User class中的這一行:
use EntrustUserTrait;
像這樣:
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Zizaco\Entrust\Traits\EntrustUserTrait;
class User extends Authenticatable
{
use EntrustUserTrait; // add this trait to your user model
.....
}
在您的UsersController中,您可以選擇具有其角色的用戶(索引方法):
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests;
class UsersController extends Controller
{
protected $users;
public function __construct(User $users)
{
$this->users = $users;
parent::__construct();
}
public function index()
{
$users = $this->users->with('roles')->paginate(25);
return view('users.index', compact('users'));
}
在你的刀片循環中$ user->在$ users循環中的角色因為$ user-> roles是集合,即使用戶只有一個角色。
@foreach($users as $user)
@foreach($user->roles as $role)
{{ $role->display_name }}
@endforeach
@endforeach
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.