簡體   English   中英

laravel 5.2中的訪問集合

[英]Access collection in laravel 5.2

我在laravel 5.2上使用委托我的角色和權限,我在我的控制器上有這個:

$user = Auth::user();
    $rol = $user->roles;
    dd($rol);

在我的用戶模型中:

 public function roles(){
    return $this->belongsToMany('Nini\Role','role_user');
}

得到這個: 快照

我正在嘗試訪問並在我的視圖中顯示“display_name”,我不能,幫助! 提前致謝。

正如您在User模型中定義的那樣,用戶可以擁有多個角色(這意味着用戶具有一組角色),因此您必須定義要顯示display_name屬性的角色。 我想為用戶顯示所有可用角色的display_name屬性,這可以通過以下方式實現:

@foreach (Auth::user()->roles as $rol)
  $rol->display_name
@endforeach

我希望有助於消除您的疑慮。

要查看控制器中的數據,請使用$user = Auth::user()->with('roles')

使用dd($rol->toArray())進行檢查數據收集,

要以逗號分隔用戶的所有角色,您可以使用implode()作為:

$rol->implode('display_name', ', ');

然后它給你Admin, Manager

我認為Laravel的Entrust庫在用戶和角色之間存在多對多的關系。 因此,如果要在視圖中顯示顯示名稱,則需要從調用方法角色()獲取的集合中獲取項目/對象。您可以這樣做:

// Collection of Roles
$user_roles = $user->roles;
foreach($user_roles as $user_role) {
  echo $user_role->display_name;
}

或者如果你想獲取你可以使用的第一個rle

$user_roles->first()->display_name

我希望這可以幫助你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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