簡體   English   中英

Laravel - 如何獲得特定用戶的Entrust角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM