2017-04-11 14 views
0

申し訳ありませんが、質問はあなたのために愚かですが、私はtアウトを考え出すことができないようです。私は2つの機能を持っていますisLoggedisAdmin。彼らは完全に動作し、それらに基づいて私は自分のnavbar上にリンクを作成したい。私は何をしようとしていることは基本的に私はここで作成したいのか、このブレードテンプレートのNavbar条件ユーザー/管理者Laravel

<li>Non Logged users link visible for everyone visiting the site</li>   
    @if(isLoggedIn() && !isAdmin()) 
     <li>LoggedIn Link</li> 

      @if(isLoggedIn() || isAdmin()) 
       <li><a href="">Both</a></li> 
      @endif  

     <li><a href="#">Logged In link</a></li> 
    @elseif(isAdmin())    

     <li><a href="#">Admin Dashboard</a></li>           
    @else   
     <li><a href="#">Login</a></li> 
    @endif 

である管理者のために表示されていないいくつかのリンクを持っているadminsではありませんusersログイン

  1. すべてです。
  2. adminsには、すべてがログインしたusersが表示されます。
  3. すべてusersに関係なく、adminsまたは通常のユーザーはリンクへのリンクを追加できます。

@If - >(!BaseController :: isLoggedIn()& & BaseController :: isAdmin())をチェックし、ユーザーがログインしたがこれが示す必要がある場合、私は別のものを配置した内側に、その後

を管理されていない場合<li><a href="">Both</a></li>Adminsにあり、ユーザーはログインしているので...しかし、このリンクはログに記録されていますUser。 On Adminは表示されません。

私はACLを認識していますが、実際にはaclは必要ありません。私はこのような条件でこれを達成したい。

条件の作成方法は?あなたの2つのヘルパー関数を想定すると、この1

@if(isLoggedIn() && !isAdmin()) 
    <li>LoggedIn Link</li> 
@endif 
@if(isLoggedIn() || isAdmin()) 
    <li><a href="">Both</a></li> 
@endif  


@if(isAdmin())    

    <li><a href="#">Admin Dashboard</a></li>           
@else   
    <li><a href="#">Login</a></li> 
@endif 
+0

「両方」のリンクはあなたが持っている場所にはありません。そのブロックの中であなたがすでにユーザーが管理者ではないと判断した場合、isAdmin()はtrueを返すことはできません。 –

+0

はい、どちらのロールでも内部にあるリンクを表示したい場合はどこですか? – VLS

+0

isLogged()を使用するだけですか?両方のために真実を返しませんか?ユーザーがログインしている場合にtrueを返す 'Auth :: check()'もあります。 –

答えて

1

は、適切のようなものを仕事してみてください:下

@if(isLoggedIn() && !isAdmin()) 

でこれを入れて

+0

ありがとうございます。それは作品..私はブレードテンプレートを介して私が望むように私はそれを手配することができると思います。 – VLS

1
@if(isLoggedIn() || isAdmin()) 
    <li><a href="">Both</a></li> 
@endif  

編集を示すから、それを妨げていますこれはより洗練されたものになります。

@if(isLoggedIn()) 
    // HTML for all logged in users 

    @if(isAdmin()) 
     // HTML for admins only 
    @else 
     // HTML for non-admins only 
    @endif 

@endif 
+0

しかし、if/elseif/elseの外側にあるリンクの最後にこれを置くとこのようになります。私はそれが最後ではないことを望む。 – VLS

+0

助けてくれてありがとう。サイードの答えは少しきれいです。 +1 – VLS

関連する問題