我在用户成功(或失败)创建文章后使用flash进行用户反馈。我使用的是 PHP 版本 5.5.27。这是我在控制器中的存储功能:
public function store(ArticleRequest $request)
{
$data = $request->all();
Article::create($data);
Flash::message('Article Created!');
return redirect ('articles');
}
在我看来.php这是app.blade
:<div class="container">
@include('flash::message')
@yield('content')
无论我导航到何处,闪烁消息都会不断出现。但是如果我从我的应用程序中注销用户,闪光灯就会消失。我尝试使用原始的会话::消息,它仍然是一样的。我还尝试了Laravel 5闪光消息中的所有解决方案,在导航离开并使用后退按钮后再次闪烁,但它仍然没有解决我的问题。但是当我尝试创建一个新的新拉拉维尔项目时,它确实工作得很好。在这个问题之前,我遇到了TokenMismatchException,并通过编辑VerifyCsrfToken.php文件来修复它,如下所示:
public function handle($request, Closure $next)
{
//return parent::handle($request, $next);
$response = $next($request);
if (last(explode('''',get_class($response))) != 'RedirectResponse') {
$response->header('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
}
return $response;
}
此问题是否与VerifyCsrfToken.php文件有关?我该如何解决这个问题?任何帮助将不胜感激
我更喜欢这样使用:
在控制器中:
'Session::flash('key', 'value');
鉴于 :
@if('Session::has('key')
// Include blade file or :
{{ 'Session::get('key') }}
@endif
在拉拉维尔文档中:
有时,您可能希望仅在会话中存储项目以用于下一个请求。您可以使用闪存方法执行此操作。使用此方法存储在会话中的数据仅在后续 HTTP 请求期间可用,然后将被删除。Flash 数据主要用于短期状态消息:
$request->session()->flash('status', 'Task was successful!');
或
'Request::session()->flash()
试试这种方式。