我使用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;仍存在于会话数据中。帮我解决这个问题
答案 0 :(得分:0)
使用with()(flash数据)存储在会话中的数据将仅在下一个Http请求中可用,然后将被删除。这意味着您甚至不必将{{Session::forget('message')}}
添加到代码中。
Entrust包使用从Route::filter
开始弃用的routeNeedsPermission
(Laravel 5.1
和其他函数)。
可能是您的重定向未按预期方式处理。