我是laravel的初学者,我从用户那里获得了隐藏的侧边栏菜单,它可以正常工作,但是当从管理员注销时,我将遇到如何解决的错误,谢谢。请参阅错误https://flareapp.io/share/NPL9bz7w
HTML视图
<!-- Sidebar Menu -->
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview"
role="menu" data-accordion="false">
<!-- Add icons to the links using the .nav-icon class
with font-awesome or any other icon font library -->
<!--Admin sidebar menu -->
@if(Auth::user()->type == "admin")
<li class="nav-item">
<a href="{{url('admin')}}" class="nav-link">
<i class="fas fa-comments"></i>
<p>Users Permission</p>
</a>
</li>
<li class="nav-item">
<a href="{{url('manage_users')}}" class="nav-link">
<i class="fas fa-comments"></i>
<p>Manage Users</p>
</a>
</li>
<li class="nav-item">
<a href="{{url('register')}}" class="nav-link">
<i class="fas fa-comments"></i>
<p> User Register</p>
</a>
</li>
<!-- end Admin sidebar menu -->
<!-- User sidebar menu -->
@else
<li class="nav-item">
<a href="{{url('viewprofile')}}" class="nav-link">
<i class="fas fa-user"> </i>
<p>View Profile</p>
</a>
</li>
<li class="nav-item">
<a href="{{url('DashBoard')}}" class="nav-link">
<i class="fas fa-comments"></i>
<p>Chat Room</p>
</a>
</li>
@endif
</ul>
</nav>
<!-- /.sidebar-menu -->
答案 0 :(得分:2)
问题是,您正在检查@if(Auth::user()->type == "admin")
来检查已登录的管理员。如果管理员已注销,则没有Auth::user()
。我认为这是您面临的问题。所以像这样改变条件
@if(Auth::check() && Auth::user()->type == "admin")
// Admin menu bar
@elseif (Auth::check())
// User menu bar
@endif
我认为这将解决问题。
答案 1 :(得分:1)
由于用户已注销,因此 Auth :: user()为空。
因此,当您尝试获取其类型时,它会抛出
试图获取非对象的属性“类型”
您需要检查用户是否已登录,然后检查其类型。
@if(Auth::check() && Auth::user()->type == "admin")
如果用户登录,Auth :: check()将返回true
答案 2 :(得分:0)
首先检查如果用户已登录,然后检查用户是否为管理员:
const search = document.getElementById('search');
const matchList = document.getElementById('match-list');
// Search gems.json and filter it
const searchGems = async searchText => {
const res = await fetch('../data/gemz.json');
const gems = await res.json();
// Get Matches to current text input
let matches = gems.filter(gem => {
const regex = new RegExp(`^${searchText}`, 'gi');
return gem.Page.match(regex);
});
if(searchText.length === 0) {
matches = [];
matchList.innerHTML = '';
}
outputHtml(matches);
};
//Show Results in HTML
const outputHtml = matches => {
if(matches.length > 0) {
const html = matches.map(match => `
<div class="card card-body mb-1">
<h4>${match.Page}</h4> <em>(${match.gemdiscription})</em> <span class="text-primary">
${match.gemtags}</span>
</div>
`).join('');
matchList.innerHTML = html;
}
};
search.addEventListener('input', () => searchGems(search.value));
答案 3 :(得分:0)
使用isset方法
@if(isset(Auth::user()->type) && Auth::user()->type== "admin")
您还可以使用Auth :: check()
@if(Auth::check() && Auth::user()->type== "admin")