【发布时间】:2016-08-28 17:59:47
【问题描述】:
在 laravel Blade 模板中,我们可以使用以下代码排除 HTML 的某些部分:
@if (Auth::user())
<li><a href="{{ url('/home') }}">Mein Profil</a></li>
<li><a href="{{ url('/admin') }}">Admin</a></li>
@else
<li><a href="{{ url('/home') }}">Mein Profil</a></li>
@endif
如果用户已通过身份验证,则显示主页和管理员链接,如果用户未通过身份验证,则仅显示主页链接。
我的问题是如果用户是管理员,如何在这里进行检查?
我有来自 laravel 的默认登录系统,我刚刚在表 users -> ('admin') 中添加了一列,其中 tinyint 值为 1,并且在此视频中 https://www.youtube.com/watch?v=tbNKRr97uVs 我找到了检查用户是否是管理员的代码
if (!Auth::guest() && Auth::user()->admin )
它在 AdminMiddleware.php 中工作 但它在刀片中不起作用。如何使它工作??
【问题讨论】:
-
尝试注销并重新登录,可能是因为您在登录后添加了列,并且可能没有加载到 Auth::user 会话中。还要在您的问题中添加您对此
echo "<pre>"; print_r(Auth::user()); die()的转储响应,这样我们就可以看到管理列是否即将到来 -
你有什么错误吗?
-
我做了一个检查路线,并用它打印出 check OK Route::get('check', function() { echo 'check OK'; });并使用此 Route::get('check', function() { print_r(Auth::user()); });什么都不打印.....甚至没有错误!
-
对不起,伙计们,但它现在可以工作了.....我想我只需要重置服务器:(我的错