laravel - Laravel - 从 8 个单独的表单中收集数据
问题描述
我需要收集来自 8 种不同表单的表单数据。我需要所有表单都是子数组,并且只有 1 个数组包含所有子数组。这种结构的原因是我将根据子数组以不同的方式操作内容。
每个表单都有自己的提交按钮,目前不需要一个请求提交所有表单。
以下是其中 2 个表格的代码。
问题:如果我填写了两个表单,为什么我在最后一次运行表单时在 print_r 结果中没有看到 [form_1] 和 [form_2]?
如何解决它的理论包括一个负责合并所有子数组表单数据的构造函数。
结果:
Array
(
[form_1] => Array
(
[user] => 123
)
)
Array
(
[form_2] => Array
(
[user] => 456
)
)
想要的结果:(应该是 8,只显示 2 用于演示):
Array
(
[form_1] => Array
(
[user] => 123
)
[form_2] => Array
(
[user] => 456
)
)
我的代码:
[路线/web.php]:
Route::get('/form-1', function () {
return view('form_1');
});
Route::get('/form-2', function () {
return view('form_2');
});
Route::post("/process_form_1", "FormHandler@result_1");
Route::post("/process_form_2", "FormHandler@result_2");
[Form_1.blade.php]:
表格-1
<form action="/process_form_1" method="post">
@csrf
<label for="1">Name</label>
<input id="1" type="text" name="user"><br>
<button submit="button" name="button">Send</button>
</form>
[Form_2.blade.php]:
表 2
<form action="/process_form_2" method="post">
@csrf
<label for="1">Name</label>
<input id="1" type="text" name="user"><br>
<button submit="button" name="button">Send</button>
</form>
[FormHandler.php]:
命名空间 App\Http\Controllers;
使用 Illuminate\Http\Request;
类 FormHandler 扩展控制器 {
function result_1(Request $request)
{
$this->result['form_1'] = $request->input();
echo "<pre>";
print_r($this->result);
echo "</pre>";
// return (redirect('form-1'));
}
function result_2(Request $request)
{
$this->result['form_2'] = $request->input();
echo "<pre>";
print_r($this->result);
echo "</pre>";
// return (redirect('form-2'));
}
}
解决方案
我想我明白了你想要做什么,当你向服务器发出请求时,它会创建一个新的 Laravel 实例来处理请求,从而处理任何对象(即你试图附加请求输入的控制器对象to) 将是新的,因此新请求将无法访问 $this->result,因为它是控制器的新实例。访问它的唯一方法是将其存储在数据库中,然后再次访问,或者为每个请求发送所有表单中的所有数据。根本不可能(您也不希望这样)从不同的请求访问数据。
您可以考虑使用 Redis 在请求之间将数据缓存在内存中,这可能是此类问题的最常见解决方案。
推荐阅读
- php - 通过多态多对多关系访问远距离关系
- c++ - 通过队列处理 g_signal_connect() 回调
- amazon-web-services - 调用参数存储时的 lambda 超时
- php - 致命错误:未捕获的错误:找不到类“路线”
- javascript - 如何在类的构造函数中添加事件侦听器,但句柄函数调用类内部的方法(es6)?
- regex - 具有固定组的特定正则表达式
- npm - 可以在 package.lock.json 依赖树的不同部分中存在同一个包的多个版本吗?
- sql - 将从光标获取的数据复制到 CSV PostgreSQL
- xamarin.forms - 我正在尝试通过在 xamarin 表单上使用绑定来嵌入图像
- python - 使用 python 读取给定 URL 的网络请求