坚持在Symfony 4.1中将OneToMany与教义关联

时间:2018-09-07 17:02:50

标签: symfony doctrine-orm symfony4

我尝试通过OneToMany关联来保留我实体中的数据。

使用FOS REST捆绑包,我可以在控制器中获取实体。

make

我的实体是:

public function add(Campaign $campaign)
{
    $em = $this->getDoctrine()->getManager();
    $em->persist($campaign);
    $em->flush();

在数据库中与广告系列相关联的campaign_dates表中的ID为空。

4 个答案:

答案 0 :(得分:0)

尝试以下命令:

php bin/console doctrine:schema:validate

OR

php bin/console d:s:v

答案 1 :(得分:0)

您尝试过:php bin /控制台学说:migrations:diff和之后php bin /控制台学说:migrations:migrate。 当您这样做时,它会自动创建addCampaign()和removeCampaign()

答案 2 :(得分:0)

我目前发现解决该问题的唯一方法,我认为这不好,是再次创建关联的实体。 我的代码如下所示

    $dates = $campaign->getDates();
    if ($dates) {
        foreach ($dates as $date) {
            $dateObj = new CampaignDates();
            $dateObj->setDate($date->getDate())->setName($date->getName());
            $campaign->removeDate($date);
            $campaign->addDate($dateObj);
        }
    }
    $em = $this->getDoctrine()->getManager();
    $em->persist($campaign);
    $em->flush();

答案 3 :(得分:0)

我不确定,但它是否适用于symfony 2.6。 将setCampaign更改为此

public function setCampaign(?Campaign $campaign): self {
    $this->campaign = $campaign;
    $campaign->addDate($date);
    return $this;
}

您可以检查。 Symfony Doctrine One to Many does not insert foreign key

相关问题