Php Laravel:使链接对客人不可见

Php Laravel:使链接对客人不可见,php,laravel,Php,Laravel,我使用L3来制作一个网站,这样客人就可以在不需要登录的情况下留下评论,然后就会有一个管理员登录。我有一个菜单栏,用于客人和管理员的导航,但在管理员登录时,菜单栏应该有更多的选项。在我的布局上,这就是我拥有的 <div class="nav-collapse collapse" id="main-menu"> <ul class="nav" id="main-menu-left"> <li class="dro

我使用L3来制作一个网站,这样客人就可以在不需要登录的情况下留下评论,然后就会有一个管理员登录。我有一个菜单栏,用于客人和管理员的导航,但在管理员登录时,菜单栏应该有更多的选项。在我的布局上,这就是我拥有的

<div class="nav-collapse collapse" id="main-menu">
            <ul class="nav" id="main-menu-left">

                <li class="dropdown">
                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contact Us<b class="caret"></b></a>
                    <ul class="dropdown-menu" id="swatch-menu">
                        <li>{{HTML::link('posts/contact','Leave a coment')}}</li>
                        <li>{{HTML::link('posts/location','Grt Our Locations')}}</li>
                        @if (Session::has('permission'))
                        <li>{{HTML::link('posts/review','Review Posts')}}</li>                            
                        <li>{{HTML::link('posts/list','List all Posts')}}</li>
                        @endif
                    </ul>
</div>

这是正常的,除了当来宾将鼠标悬停在菜单栏上时可以看到管理员链接(即他们可以看到“查看帖子”和“列出所有帖子”。他们无法访问页面(他们被重定向到管理员登录页面)。我的问题是,如何使这些链接对来宾不可见,但在登录时对管理员可见?来宾和管理员必须使用相同的布局。提前谢谢。

您似乎已经登录一次,然后再次注销以测试站点。您似乎没有清除“权限”注销时的会话。

您似乎已经登录一次,然后再次注销以测试站点。您似乎没有在注销时清除“权限”会话。

您应该使用以下方法而不是会话:

@if(Auth::user())
@恩迪夫

您应该使用以下方法而不是会话:

@if(Auth::user())
@恩迪夫

根据用户是否为管理员设置条件,然后根据它输出链接。一个简单的
if
就可以了。itachi,你介意给我一个代码示例吗?我非常感谢。顺便说一下:根据用户是否为管理员设置条件,然后根据它输出链接。一个简单的
if
就可以了。itachi,您介意给我一个代码示例吗?我将非常感谢。顺便问一下:您能指导我如何在注销时清除权限吗?我使用了Session::forget('permission'));在我的注销功能上,但它仍然不起作用。这很奇怪。我在Laravel 3.2.14上设置了一个测试repo,但我无法复制您的问题。我可以在注销后隐藏这些管理级别的链接。下面是我的注销代码:
Auth::logout();会话::忘记('permission'));
请检查您的数据库,在注销后权限是否仍然可用。您能指导我如何在注销时清除权限吗?我使用了Session::forget('permission'));在我的注销功能上,但它仍然不起作用。这很奇怪。我在Laravel 3.2.14上设置了一个测试repo,但我无法复制您的问题。我可以在注销后隐藏这些管理级别的链接。下面是我的注销代码:
Auth::logout();会话::忘记('permission'));
检查您的数据库在注销后权限是否仍然可用。顺便说一句,您还可以使用
if(Auth::guest())
仅为注销用户显示登录按钮:)顺便说一句,您还可以使用
if(Auth::guest())
仅为注销用户显示登录按钮:)
public function post_login()
{
    $email = Input::get('email');
    $password = Input::get('password');


    $credentials = array
        ('username' => $email,
        'password' => $password);

    if (Auth::attempt($credentials))
    {
        Session::put('permission', 'admin');
        return Redirect::to('admin/index');
    } else
    {
        Session::flash('status_error', 'Your email or password is invalid - please try again.');
        return Redirect::to('admin/login');
    }
}