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>

管理者コントローラーで、管理者のみが投稿/レビューおよび投稿/リストにアクセスできるようにセッションを作成しました。これは私が持っているものです

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

セッションの代わりに次のアプローチを使用する必要があります。

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

すでに一度サインインしてから、もう一度サインアウトしてサイトをテストしているようです。サインアウト時に「許可」セッションをクリアしなかったようです。

于 2013-03-22T07:37:11.283 に答える