我正在使用Gate
进行权限,如果用户没有足够的权限并出现错误消息,则将其重定向到home
if(Gate::denies('manage-users')){
return redirect(route('home'))->withErrors('You don\'t have enough permissions!');
}
但是,当用户使用正确的权限导航到另一条路线时,页面将正确显示,但 View 中的错误处理程序显示相同的消息“您没有足够的权限”一旦错误显示在
home
中以将其隐藏在其他 View 中,如何清除错误 session ?
最佳答案
不知道这是否是最好的解决方案,所以请纠正我。我将验证更改为此
if(Gate::denies('manage-users')){
return redirect(route('home'))->withErrors(['permission_error' => 'You don\'t have enough permissions!']);
}
在主 View 中@if(session()->has('permission_error'))
{{session('errors')->get('permission_error')}}
@php session()->forget('permission_error') @endphp
@elseif( !session()->has('permission_error') && $errors->any())
<div class="alert alert-danger">
{{ $errors->first() }}
</div>
@endif
关于session - Laravel 7 : How to clear withErrors session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098620/