2016-09-02 3 views
0

이미 잘 작동하는 Custom Auth가 있습니다. 하지만 액세스를 차단하거나 해제하는 경로에서만 사용할 수 있습니다. 하지만 지금은 숨기거나 표시 버튼과 일부 역할 및 사용자를위한 링크, 같은 싶습니다 :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()을 null로 호출 - 아이디어가 있습니까? –

+0

답장을 편집했습니다 – Sherif

관련 문제