Php Laravel:使链接对客人不可见
我使用L3来制作一个网站,这样客人就可以在不需要登录的情况下留下评论,然后就会有一个管理员登录。我有一个菜单栏,用于客人和管理员的导航,但在管理员登录时,菜单栏应该有更多的选项。在我的布局上,这就是我拥有的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
<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');
}
}