blade 模板中的导航栏条件 user/admin Laravel

Navbar conditions in blade template user/admin Laravel

抱歉,如果这个问题对您来说很愚蠢,但我似乎想不通。我有两个函数 isLoggedisAdmin。它们工作完美,基于它们我想在我的导航栏上创建 links。我正在尝试的是这个

<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

基本上我想在这里创建的是

  1. 所有登录 usersadmins 都有一些管理员不可见的 link。
  2. 所有登录 usersadmins 都有不同的 link,只有他们可以看到。
  3. 所有登录 users 的用户,无论 admins 还是普通用户,都可以在他们的 link 中添加 link。

@if -> (BaseController::isLoggedIn() && !BaseController::isAdmin()) 检查用户是否登录但不是管理员

然后我在里面放了另一个 if 应该在 Admins 和用户上显示 <li><a href="">Both</a></li> 因为他们已经登录了...但是我只在登录时看到这个 link User。在 Admin 上不可见。

我知道 ACL,但我并不真的需要 acl。我想用这样的条件来完成这个。

如何构造条件?

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

把这个放在底部

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

阻止它显示

编辑:试试这个

@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

假设你的两个辅助函数正常工作,像这样的东西会更干净并且工作得更好..

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

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

@endif