【问题标题】:Laravel 7: How to clear withErrors sessionLaravel 7:如何清除 withErrors 会话
【发布时间】:2020-07-26 09:57:06
【问题描述】:
我使用Gate 获取权限,如果用户没有足够的权限并显示错误消息,则将用户重定向到home
if(Gate::denies('manage-users')){
return redirect(route('home'))->withErrors('You don\'t have enough permissions!');
}
但是当用户导航到具有正确权限的另一条路线时,页面会正确显示,但视图中的错误处理程序会显示相同的消息“您没有足够的权限”
一旦错误显示在home 中,我如何清除错误会话以将其隐藏在其他视图中?
【问题讨论】:
标签:
session
error-handling
permissions
laravel-7
【解决方案1】:
不知道这是否是最好的解决方案,所以请纠正我。我将验证更改为这个
if(Gate::denies('manage-users')){
return redirect(route('home'))->withErrors(['permission_error' => 'You don\'t have enough permissions!']);
}
在主页视图中
@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