0

我正在使用 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>

在我的管理员控制器上,我创建了一个 Session 以使帖子/评论和帖子/列表只能由管理员访问。这就是我所拥有的

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');
    }
}

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

4

2 回答 2

3

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

@if (Auth::user())
    <a href="#">Admin</a>
@endif
于 2013-03-22T21:12:16.997 回答
0

您似乎已经登录过一次,然后再次退出以测试该站点。看起来您在退出时没有清除“权限”会话。

于 2013-03-22T07:37:11.283 回答