使用带有

时间:2015-10-10 06:55:20

标签: session laravel-5.1

我使用Laravel 5.1和Zizaco / Entrust担任角色&权限。这里我在清除会话变量时遇到了问题。根据我的理解 with()方法 - 其目的是仅为该特定重定向添加错误消息或某些输入数据,并且仅针对一个页面添加。在我的情况下,它正确地重定向到仪表板,但即使在刷新页面后会话消息也存在。

路线

<?php
  Route::group(['middleware' => 'auth'], function () 
  { 
        Route::get('dashboard', function () { 
          return view('dashboard');
        });
       Entrust::routeNeedsPermission('add_item', 'Create_Item', Redirect::to('dashboard/')->with('message', 'You Dont have peremissions..'), false );
       Route::get('add_item', 'ItemController@create');
  });

查看

@if(Session::has('message')) 
  <p class="alert {{ Session::get('alert-class', 'alert-info') }}">{{     Session::get('message') }}</p>
  {{Session::forget('message')}}
@endif

我尝试通过刷新页面来转储会话。我不知道为什么&#39;消息&#39;仍存在于会话数据中。帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

使用with()(flash数据)存储在会话中的数据将仅在下一个Http请求中可用,然后将被删除。这意味着您甚至不必将{{Session::forget('message')}}添加到代码中。

Entrust包使用从Route::filter开始弃用的routeNeedsPermissionLaravel 5.1和其他函数)。

可能是您的重定向未按预期方式处理。