【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 2016-10-29
      • 2023-01-04
      • 2015-03-01
      • 2013-12-06
      • 2012-04-22
      • 2018-04-14
      相关资源
      最近更新 更多