我尝试通过OneToMany关联来保留我实体中的数据。
使用FOS REST捆绑包,我可以在控制器中获取实体。
make
我的实体是:
public function add(Campaign $campaign)
{
$em = $this->getDoctrine()->getManager();
$em->persist($campaign);
$em->flush();
在数据库中与广告系列相关联的campaign_dates表中的ID为空。
答案 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