php - 使用 Doctrine 持久化多个实体
问题描述
我已经提取了需要在数据库中发布的数组集合。有用。
现在,我需要坚持超过一排,我正在尝试使用 foreach 循环来做到这一点,但它不起作用。
我的部分代码:
$dataset = array();
foreach ($dataset as $data) {
$a = new User();
$a->setFirstName($data[3]);
$a->setLastName($data[5]);
$a->setUsername($data[13]);
$a->setEmail($data[14]);
$a->setCompany($data[23]);
$this->em->persist($a);
$this->em->flush();
}
解决方案
看起来您在刷新后关闭了连接。尝试在 foreach 循环中加载和持久化对象,然后在外部刷新一次。
$dataset = array();
foreach ($dataset as $data) {
$a = new User();
$a->setFirstName($data[3]);
$a->setLastName($data[5]);
$a->setUsername($data[13]);
$a->setEmail($data[14]);
$a->setCompany($data[23]);
$this->em->persist($a);
}
$this->em->flush();
EntityManager 代表连接,因此您只需要在准备好提交到数据库时刷新。
推荐阅读
- google-apps-script - 如何在我的数据输入表单中只为 Google Sheet App Script 按钮创建一个必填字段?
- python - 有没有一种方法可以仅使用 pandas 将公式写入 .xlsx 文件,即不使用 xlsxwriter / openpyxl 之类的工具?
- schemaspy - Schemaspy 中的自定义输出生产者
- python - send_code_request (Telethon) 之后的无休止更新
- python - 是否可以在 Django 模型中的复选框或下拉列表下添加依赖文本和日期字段
- c# - 从 SQL 数据库中检索数据并使用动态创建的标签来显示 Ping 结果
- r - R包在两个版本号之间导入包?
- bash - 如果目录存储在变量中,那么在引用它时表示其子目录的正确方法是什么?
- node.js - 如何从 mongodb 获取和显示没有未定义值的所有值?
- reactjs - 在其中键入任何值时关闭模态?