php - json 编码并附加到当前表单提交请求 laravel
问题描述
我正在使用laravel。我有一个包含许多输入字段的表单,例如名字、姓氏、地址等。
我想以 json 格式存储地址数据,因为地址可以有地址 1、adderss2、city 等,所以我想存储为 json
public function store(Request $request)
{
$data = $request->all();
dd($data);
}
它在 dd($data) 上给出以下结果;
array:5 [▼
"_token" => "GEBkMtY6Plwt7OMYCH41QRh7S29XdgEniExNm4z6"
"field_855" => "john"
"field_856" => "doe"
"fields" => array:2 [▼
"field_857" => array:6 [▼
"add1" => "Avenida Eva Perón"
"add" => "aa"
"c" => "CJN"
"state" => "NW"
"p" => "23"
"country" => "CDE"
]
"field_858" => array:6 [▼
"addressone" => "PO Box 23"
"address2" => "dd"
"city" => "NEWCASTLE UNIVERSITY"
"state" => "NSW"
"postcode" => "223"
"country" => "ABC"
]
]
]
我想将 $request->fields 的数据转换为 json,就像"field_857"=>[{'add1':aAvenida Eva Perón',add:'aa',c:'CJN','state':'NWW','postcode':'233','country':'ABC'}]
字段 field_858 一样。
所以我想要的最终数组是这样的:
dd($data);
array:9 [▼
"_token" => "GEBkMtY6Plwt7OMYCH41QRh7S29XdgEniExNm4z6"
"form_secret_token" => "T5yb8UZqIh8znSKbgTI32kNaAjsKlk4G"
"itoken" => "Ju4qFduCNk"
"field_855" => "john"
"field_856" => "doe"
"address" => "PO Box 23, NEWCASTLE UNIVERSITY NSW 2308"
"fields" => array:2 [▶]
"field_857" => "[{'add1':aAvenida Eva Perón',add:'aa',c:'CJN','state':'NWW','postcode':'233','country':'ABC'}]`"
"field_858" => "[{'addressone':PO Box 23',address2:'dd',city:'NEWCASTLE UNIVERSITY','state':'NWW','postcode':'233','country':'ABC'}]`
]
我使用 array_keys() 和 array_values() 来获取 $request->field 的键和值并分配给 $data,我得到错误:非法偏移类型
解决方案
嗨,您可以将字段转换为 json 并将其推送到您的集合中:
$data = $request->all();
$result = json_encode($data->fields);
$result = json_decode($result);
// return $result;
foreach($result as $key=>$r){
$newField = [
$key => $r
];
$data[$key] = $r;
}
// dd($request['field_857']->add1);
// dd($request->field_857->add1);
dd($data);
推荐阅读
- office365 - 如何在 SharePoint 中使用 Jquery 获取 Web 对象?
- c# - 如果应用程序由于未处理的异常或其他原因崩溃,FileStream 会发生什么?
- python - 将列表对象缩短为仅数字并在 Python 中创建新列表
- hibernate - Hibernate 提取错误数据类型的值
- python - 如何在 Python 中从非多部分电子邮件创建多部分电子邮件?
- selenium - 无法通过 winium.desktop.driver 在窗格内找到窗格。无法识别窗格内的元素
- android - 正在进行的通知未取消
- r - R数据框所有面向字符串的coocuring单词列-创建coocurences-bigram-dplyr
- javascript - Angular 7 业力测试与导入外部 JS 模块
- azure - 无法在 MS Azure 上创建包含自定义图像的池