Heim  >  Artikel  >  Backend-Entwicklung  >  Laravel 5.2:使用`Zizaco/entrust`时,怎么获得当前登录用户的角色?

Laravel 5.2:使用`Zizaco/entrust`时,怎么获得当前登录用户的角色?

WBOY
WBOYOriginal
2016-06-06 20:11:221039Durchsuche

当前使用的版本是laravel 5.2 在使用和Zizaco/entrust 5.2这个包的时候,怎么获得当前登录用户的角色?

<code>namespace App\Services;

use App\User;
use Zizaco\Entrust\EntrustRole;
use Illuminate\Support\Facades\Cache;

class NameAndRole
{
    public $username;
    public $role;

    public function __construct() {
        $user = \Auth::user();
        $this->username = $user->name;
        $role = ;    //怎么获得当前登录用户的角色?
    }
}</code>

回复内容:

当前使用的版本是laravel 5.2 在使用和Zizaco/entrust 5.2这个包的时候,怎么获得当前登录用户的角色?

<code>namespace App\Services;

use App\User;
use Zizaco\Entrust\EntrustRole;
use Illuminate\Support\Facades\Cache;

class NameAndRole
{
    public $username;
    public $role;

    public function __construct() {
        $user = \Auth::user();
        $this->username = $user->name;
        $role = ;    //怎么获得当前登录用户的角色?
    }
}</code>

在你的users模型以及roles模型里,应该有像下边这样的方法:

<code>class User extends Model
{
    //...
    
    public function roles ()
    {
        // 多对多的关系(一个用户有多个角色)
        return $this->belongsToMany(\App\Role::class); 
    }
    
    //...
}

class Role extends Model
{
    //...
    
    public function users ()
    {
        // 多对多的关系(一个角色赋予了多个用户)
        return $this->belongsToMany(\App\User::class);
    }
    
    //...
}</code>

模型里边有了以上方法,获取角色就像下边这样(访问动态属性):

<code>$roles = $user->roles; // 一个用户可能有多个角色</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn