php - Laravel 处理复杂请求
问题描述
我有一个将 FormData 发送到我的 API 的请求。
它具有以下结构:
image: file type image;
text: 'some long string';
array: ['string', 'string'];
data: [
{ field: 'string', link: 'url' },
{ field: 'string', link: 'url' },
]
我成功处理了前三个输入,但坚持使用最后一个。
Laravel 以字符串数组而不是对象数组的形式接收它。
我既不能通过$request->data->field
也不能通过$request->data['field'}
我也尝试使用json_decode
,但这会返回null
更新#1
array(4) {
["text"]=>
string(17) "asdajsklfsdnfnads"
["array"]=>
array(2) {
[0]=>
string(6) "sadasd"
[1]=>
string(6) "safsdf"
}
["data"]=>
array(2) {
[0]=>
string(39) "{link: "http://sdf.sdf", field: "asfd"}"
[1]=>
string(44) "{link: "http://sdf.sasdf", field: "asasdfd"}"
}
["image"]=>
object(Illuminate\Http\UploadedFile)#787 (7) {
解决方案
试试这个代码
$result = [];
foreach($request->data as $data) {
$object = json_decode($data);
$result[] = $object;
// $object['filed'] you can access in field attribute
}
dd($result);
推荐阅读
- jsf - 阶段执行期间抛出异常:javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@7c8ce10f]
- reactjs - React Native:切换/(取消)隐藏组件 - 有条件的
- vb.net - 与电脑的竞争
- permissions - DNN 文件管理器在上传文件时显示“无权限”错误
- docx4j - w:t 不是 org.docx4j.wml.Text 的实例?
- excel - 使用excel宏删除PowerPoint幻灯片中的所有图表
- qt - 如何获取 QTreeWidgetItem 数据?
- google-cloud-platform - GCP 通过 API 为 Bitbucket 设置 Cloud Build Trigger
- javascript - XML 到 Javascript/Jquery 可读格式
- c++ - 我应该在我的函数中使用静态变量来防止重新计算值吗?