Javascript 串行化Laravel刀片阵列
我正在制作一个由数千个变量组成的laravel blade的长表单。我正在表单中为name属性使用数组。表单提交很好,但有时我的日志中会出现一个异常,即“输入变量的php最大变量限制已超出”,并且我的记录中缺少一些数据。超过PHPMAX变量限制对我来说是行不通的,所以我决定将表单数据序列化为单个变量,并将其传递给laravel控制器,在那里我可以取消序列化并使用数据。但是我被困在一个点上,我的name属性是一个数组。到目前为止,我尝试的是: 我的JS函数Javascript 串行化Laravel刀片阵列,javascript,php,laravel,forms,laravel-blade,Javascript,Php,Laravel,Forms,Laravel Blade,我正在制作一个由数千个变量组成的laravel blade的长表单。我正在表单中为name属性使用数组。表单提交很好,但有时我的日志中会出现一个异常,即“输入变量的php最大变量限制已超出”,并且我的记录中缺少一些数据。超过PHPMAX变量限制对我来说是行不通的,所以我决定将表单数据序列化为单个变量,并将其传递给laravel控制器,在那里我可以取消序列化并使用数据。但是我被困在一个点上,我的name属性是一个数组。到目前为止,我尝试的是: 我的JS函数 function submitForm(
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阵列。我怎样才能做到这一点?或者有更好的解决办法
编辑
可能的重复也使用
$values=[];parse_str($data['form_data'],$value);echo$值['input1']
@N69S未成功。在使用解除序列化之前,请执行dd($data)
php@N69S向问题详细信息添加转储我正在获取“unserialize():偏移量0处的错误,共18006字节”
$temp = explode('&',$request['form_data']);
$data = [];
foreach ($temp as $key => $value)
{
$pair =[];
parse_str($value,$pair);
foreach ($pair as $key => $value1)
{
if(isset($data[$key]))
{
array_push($data[$key], is_array($value1) ? $value1[0] : $value1);
}else
{
$data[$key] = [];
array_push($data[$key],is_array($value1) ? $value1[0] : $value1);
}
}
}
//use $data further