Doctrine Fixture 数据加载 - 插入中缺少值
Doctrine Fixture Data load - Value missing from insert
我在我的 symfony2/doctrine2 项目中创建了以下具有多对一(一个电路包含一个或多个学校)双向关系的实体(学校和电路)。
这是 Schoool.orm.yml and circuit.orm.yml 定义
我正在尝试为每个实体加载相应的数据夹具,如下所示:
//Circuit Fixture
public function load(ObjectManager $em) {
$newCirco = new Circonscription();
$newCirco->setId(1);
$newCirco->setLibelle('Circuit1');
$em->persist($newCirco);
$em->flush();
$this->addReference('circo1', $newCirco);
}
//School Fixture
public function load(ObjectManager $em) {
//Ecoles - Circo 1
$ecole = new Etablissement();
$ecole->setRne('0310211L');
$ecole->setCirconscription($em->merge($this->getReference('circo1')));
$ecole->setLibelle('FRANCE');
$ecole->setAdresse('6 AVENUE DE Test');
$ecole->setTelphone('05xxxxxxxx');
$ecole->setEmail('xxxxxx@xxxxxxxxe.fr');
$em->persist($ecole);
$em->flush();
$this->addReference('ecole', $ecole);
}
但是,我从 Doctrine 那里得到了一个 NotNullConstraintViolationException
与完整性违规相关的问题。
An exception occurred while executing 'INSERT INTO etablissement (rne, libe
lle, adresse, telphone, email, circo_id) VALUES (?, ?, ?, ?, ?, ?)' with pa
rams ["0310241U", null, null, null, null, null]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'libelle' cann
ot be null
虽然该值已在夹具中定义。
这个错误的来源可能是什么?或者为什么由 doctrine 生成的插入内容不包含值?
在你的学校里尝试改变 setCirconscription()
的参数:
public function load(ObjectManager $em) {
$ecole = new Etablissement();
$ecole->setRne('0310211L');
$ecole->setCirconscription($this->getReference('circo1'));
/.../
}
并且不要忘记在 School Fixture
之前加载 Circuit Fixture
我在我的 symfony2/doctrine2 项目中创建了以下具有多对一(一个电路包含一个或多个学校)双向关系的实体(学校和电路)。 这是 Schoool.orm.yml and circuit.orm.yml 定义
我正在尝试为每个实体加载相应的数据夹具,如下所示:
//Circuit Fixture
public function load(ObjectManager $em) {
$newCirco = new Circonscription();
$newCirco->setId(1);
$newCirco->setLibelle('Circuit1');
$em->persist($newCirco);
$em->flush();
$this->addReference('circo1', $newCirco);
}
//School Fixture
public function load(ObjectManager $em) {
//Ecoles - Circo 1
$ecole = new Etablissement();
$ecole->setRne('0310211L');
$ecole->setCirconscription($em->merge($this->getReference('circo1')));
$ecole->setLibelle('FRANCE');
$ecole->setAdresse('6 AVENUE DE Test');
$ecole->setTelphone('05xxxxxxxx');
$ecole->setEmail('xxxxxx@xxxxxxxxe.fr');
$em->persist($ecole);
$em->flush();
$this->addReference('ecole', $ecole);
}
但是,我从 Doctrine 那里得到了一个 NotNullConstraintViolationException
与完整性违规相关的问题。
An exception occurred while executing 'INSERT INTO etablissement (rne, libe
lle, adresse, telphone, email, circo_id) VALUES (?, ?, ?, ?, ?, ?)' with pa
rams ["0310241U", null, null, null, null, null]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'libelle' cann
ot be null
虽然该值已在夹具中定义。 这个错误的来源可能是什么?或者为什么由 doctrine 生成的插入内容不包含值?
在你的学校里尝试改变 setCirconscription()
的参数:
public function load(ObjectManager $em) {
$ecole = new Etablissement();
$ecole->setRne('0310211L');
$ecole->setCirconscription($this->getReference('circo1'));
/.../
}
并且不要忘记在 School Fixture
Circuit Fixture