2016-09-02 5 views
0

すでに正常に動作するカスタム認証があります。しかし、私はアクセスをブロックしたり解放したりするルートでしか使用できません。しかし、今、私は、いくつかの役割とユーザーのためのボタンやリンクを表示または非表示したいようなものでしょう:モデルからhtmlビューまたはコントローラのロール関数を呼び出す

@if(user==admin) // this line (Auth::user->roles()) ?? 
<a href="admin">Configuration</a 
@endif 

しかし、悲しいことに、私はそれを試してどんなにそれを行う傾けます。私が言ったように私はすでにこのユーザーモデルに

public function roles() 
{ 
    return $this->belongsToMany('App\Role', 'user_role', 'user_id', 'role_id'); 
} 

public function hasAnyRole($roles) 
{ 
    if (is_array($roles)) { 
     foreach ($roles as $role) { 
      if ($this->hasRole($role)) { 
       return true; 
      } 
     } 
    } else { 
     if ($this->hasRole($roles)) { 
      return true; 
     } 
    } 
    return false; 
} 

public function hasRole($role) 
{ 
    if ($this->roles()->where('name', $role)->first()) { 
     return true; 
    } 
    return false; 
} 

を持っているしかし、私はlaravelでイムので、私のブレードビューにスターターをこの関数を呼び出す方法がわかりません。だから、どんな助けも素晴らしいだろう、ありがとう。さようなら

答えて

2

は、それが動作します。この

@if(\Auth::check() && \Auth::user()->hasRole('admin')) 
<a href="admin">Configuration</a 
@endif 
+0

OMGを試してみてください!私は\を使わないでAuth :: user()を試していました。私はそれを信じることができない!本当にありがとう、私の友達!!! –

+0

こんにちは、私はログに記録されていないときにエラーを返します - メンバー関数hasRole()をヌルに呼び出す - アイデアはありますか? –

+0

答えを編集しました – Sherif

関連する問題