【发布时间】:2017-09-06 19:28:31
【问题描述】:
对不起,如果这个问题对你来说很愚蠢,但我似乎无法弄清楚。我有两个函数isLogged 和isAdmin。它们完美地工作,基于它们我想在我的导航栏上创建链接。我正在尝试的是这个
<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
基本上我想在这里创建的是
- 所有登录
users而不是admins的人都有一些对管理员不可见的链接。 - 所有登录
users(即admins)的人都拥有仅对他们可见的不同链接。 - 所有登录
users的用户,无论admins还是普通用户,都可以在自己的链接上添加链接。
@if -> (BaseController::isLoggedIn() && !BaseController::isAdmin()) 检查用户是否登录但不是管理员
然后我在里面放置了另一个如果应该在Admins 和用户上显示<li><a href="">Both</a></li>,因为他们已经登录了......但是我只在登录User 时看到这个链接。在 Admin 上不可见。
我知道 ACL,但我真的不需要 acl。我想在这样的条件下完成。
如何构造条件?
【问题讨论】:
-
“Both”链接不能在您拥有它的位置。在 if 块中,您已经确定用户不是管理员,因此您不可能让 isAdmin() 在那里返回 true。
-
是的,但是如果我希望里面的链接在两个角色中都可见,可以在哪里?
-
只使用 isLogged() 吗?这对两者都不是吗?如果用户登录,甚至有
Auth::check()将返回 true,但我不确定 isLogged() 在做什么 -
isLogged()两者都返回 true.. 例如,如果用户登录或未登录,则返回 true.. 不检查是否是管理员,我仍然需要检查isAdmin