【问题标题】:persist multiple entities with Doctrine使用 Doctrine 持久化多个实体
【发布时间】:2019-01-09 10:40:46
【问题描述】:

我已经提取了我需要在我的数据库中发布的数组集合。它有效。

现在,我需要坚持不止一行,我正在尝试使用 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();
 }

【问题讨论】:

  • 你可以看看这个“问题”:github.com/doctrine/orm/issues/4422 以及一些关于教义工作如何处理对象的解释:stackoverflow.com/questions/10191139/…
  • 我试过了。它对我不起作用。 @BenRoob
  • 你没有错误吗?它只是不将数据存储在您的数据库中吗?可以肯定的是,我猜您的 $dataset 在您的真实应用中不是空的?

标签: php doctrine persist


【解决方案1】:

看起来您在刷新后关闭了连接。尝试在 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 表示连接,因此您只需要在准备好提交到数据库时刷新即可。

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2015-08-24
    相关资源
    最近更新 更多