如何根据 laravel/blade 的角色在导航栏中仅显示链接
How to show only links in nav-bar depending on role with laravel/blade
我有一个导航栏,但我不想向所有用户显示每个 link,有些 link 仅供管理员使用。
在我的 navbar.blade 中,我得到了这个 if 语句:
@if(Auth::user()->priveleges->admin)
<li><a href="{{ url('/priveleges/create') }}">Priveleges</a></li>
@endif
privileges 是一个 table 与我的用户 table 相关并且有一行 admin(boolean)
使用该代码我收到一个错误:尝试获取 属性 的非对象
我的用户模型中也有一个函数,我现在用它作为中间件来检查用户是否是管理员。这部分虽然有效
public function isAAdmin()
{
if(Auth::user()->priveleges){
if(Auth::user()->priveleges->admin === 1){
return true;
}
}
return false;
}
我也尝试在导航栏中调用该函数,但没有用。
希望有人能帮忙
不好说,但出现以下错误:
Trying to get property of non-object
通常在返回值是一个数组但您没有正确检索数据时发生。
如果您仍然无法理解这一点,您仍然可以使用 has()
方法。或者更好的 whereHas()
方法。这些方法将来可能会有所帮助,因为它们会让您在尝试查询关系时更轻松。
最好使用Laravel授权。
为此,请遵循官方文档 http://laravel.com/docs/5.1/authorization
或关注此 laracast 视频 https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/13
我有一个导航栏,但我不想向所有用户显示每个 link,有些 link 仅供管理员使用。
在我的 navbar.blade 中,我得到了这个 if 语句:
@if(Auth::user()->priveleges->admin)
<li><a href="{{ url('/priveleges/create') }}">Priveleges</a></li>
@endif
privileges 是一个 table 与我的用户 table 相关并且有一行 admin(boolean)
使用该代码我收到一个错误:尝试获取 属性 的非对象
我的用户模型中也有一个函数,我现在用它作为中间件来检查用户是否是管理员。这部分虽然有效
public function isAAdmin()
{
if(Auth::user()->priveleges){
if(Auth::user()->priveleges->admin === 1){
return true;
}
}
return false;
}
我也尝试在导航栏中调用该函数,但没有用。
希望有人能帮忙
不好说,但出现以下错误:
Trying to get property of non-object
通常在返回值是一个数组但您没有正确检索数据时发生。
如果您仍然无法理解这一点,您仍然可以使用 has()
方法。或者更好的 whereHas()
方法。这些方法将来可能会有所帮助,因为它们会让您在尝试查询关系时更轻松。
最好使用Laravel授权。
为此,请遵循官方文档 http://laravel.com/docs/5.1/authorization
或关注此 laracast 视频 https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/13