如何在Laravel中使用HTTP重定向传递字符串或变量

时间:2017-11-16 21:31:27

标签: php laravel laravel-5 eloquent controller

我正在开展一项测验,并希望检查问题是否已经得到解答。然后,我想在提交后打印一些内容和/或禁用表单。如果用户有任何观察或预订,页面将被重定向回以显示新选项。如果表单重定向,我如何检查或禁用表单,以便用户无法再次提交表单?我使用以下方法重定向回来。

<?php

return redirect()->back();

如果我使用with()方法传递一个变量,我就没有成功。系统无法识别我的变量。我也试过......

<?php

return redirect()->back()->withDisable('disable');

2 个答案:

答案 0 :(得分:2)

你可以在laravel中使用flash数据来完成这类任务。

什么是Flash数据?

Flash数据可帮助您仅在下一个请求中存储会话中的项目。使用此方法存储在会话中的数据仅在后续HTTP请求期间可用,然后将被删除。

$request->session()->flash('disabled', 'true');

但是,如果您需要保留闪存数据以满足多个请求

$request->session()->keep(['disabled', 'true']);

访问您可以简单执行的会话/ Flash数据

$request->session()->all() //all flash session data

$request->session()->get('disabled') // for specific

希望有所帮助

答案 1 :(得分:1)

只需with即可。例如:

return redirect()->back()->with('status', 'disable');

这会保存在会话数据中,因此您可以通过以下方式进行检查:

@if (session('status'))
...

来自:https://laravel.com/docs/5.5/redirects#redirecting-with-flashed-session-data