php - 如何解释这个问题以及关于 Symfony 序列化器/csv 解码器的最佳解决方案应该是什么
问题描述
我正在尝试用联系人制作一个简单的 CSV 上传器,并使用 Symfony 序列化器/CSV 编码器将它们作为数组。问题是,当我从 csv 获取数据并转储它时,我认为一切都很好。但是,当我想遍历数组以回显电子邮件字段或尝试创建新对象并将它们保存到数据库时,我收到一个错误,即索引“电子邮件地址”未定义。如果我在循环中使用 var_dump 并在列表中的第一个数组之后死掉,我看到“电子邮件地址”字段存在,这怎么可能。
图片链接 - https://imgur.com/a/7bSJT0z
/**
* @Route("/upload-csv", name="upload")
*/
public function uploadCsv(Request $request)
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid())
{
$em = $this->getDoctrine()->getManager();
$data = $form->getData();
$file = $data->getCsv();
//dump($file);
$serializer = $this->container->get('serializer');
$cons = $serializer->decode(file_get_contents($file), 'csv');
foreach ($cons as $con)
{
$contact = new Contact();
$contact->setEmail($con['Email Address']);
$contact->setFirstName($con['First Name']);
$contact->setLastName($con['Last Name']);
$contact->setCountry($data->getCountry());
$em->persist($contact);
}
$em->flush();
}
return $this->render('base.html.twig', [
'form' => $form->createView()
]);
}
解决方案
推荐阅读
- python - Redrat套接字连接错误socket.error:[Errno 111]连接被拒绝
- python - Discord py - 当用户添加反应时赋予角色
- java - 向 eventthub 发送和接收消息引发 amqp 异常
- jsf - 如何使用 JSF 将数据分组
- javascript - 如何录制屏幕的选定部分
- reporting-services - 强制 SSRS 报告生成器表在 PDF 输出中不相互重叠?
- flutter - Flutter Widget Inspector 不断显示 vscode 中的负载
- sql - How to add auto increment id according to a group in VFP 9 and SQL Server
- node.js - 使用对象原型方法应用节点模块
- linker-errors - 在 linux 64 位中使用 delphi 链接单独的共享对象库时不支持 ELF 文件类型 2