【发布时间】:2020-03-05 00:32:15
【问题描述】:
我正在使用 laravel Blade 中包含数千个变量的冗长表单。我在表单中使用名称属性的数组。表单提交正常,但有时我的日志中有一个例外,即“超出输入变量的 php 最大变量限制”并且我的记录中缺少一些数据。超过 php max 变量限制对我不起作用,所以我决定将表单数据序列化为单个变量并将其传递给 laravel 控制器,我可以在其中取消序列化并使用数据。但是我被困在我的名字属性是一个数组的地方。到目前为止我尝试的是:
我的 JS 函数
function submitForm() {
var form_data = $("#edit-form").find(".check-enabled :input").serializeArray();
var form_obj = {'form_data' : form_data, "_token": $('#token').val()}
if($(".submit-input-checks:checked").length==0)
{
swal("Please select atleast 1 Record");
return false;
}
$.post("{{route('save_opps')}}", form_obj, function (data) {
});
}
在我的 laravel 控制器中,我正在做类似的事情
public function save(Request $request)
{
$data = $request->all();
$data = unserialize($data['form_data']);
}
但它不像直接提交表单那样工作。刀片数组不会转换为 php 数组。我怎样才能做到这一点?或者有更好的解决方案。
【问题讨论】:
-
How do I PHP-unserialize a jQuery-serialized form? 的可能重复项也使用
$values = []; parse_str($data['form_data'], $values);echo $values['input1']; -
@N69S 没有成功。
-
在使用 php 反序列化之前执行
dd($data) -
@N69S 在问题详情中添加了转储
-
我收到“unserialize(): Error at offset 0 of 18006 bytes”
标签: javascript php laravel forms laravel-blade