违反Doctrine2完整性约束:插入2个一对一关联时为1048

维特斯蒂尔

嗨,我得到了例外:

INSERT INTO persons (contact_id, addresses_id, files_id, firstname, middlename, lastname, gender, birthday, cdate, udate, id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [2, null, null, "Foo", "", "Bar", 1, null, "2014-01-10 15:59:45", null, null]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'addresses_id' cannot be null

当我想创建一个具有新联系人和地址关系的新人时。

控制器:

// Person Contact
$contact = new Contact();
$contact->populate($contactData);
$em->persist($contact);

// Person Address
$address = new Address();
$address->populate($addressData);
$countryRef = $em->getReference('Admin\Entity\Country', $address->getCountriesId());
$address->setCountry($countryRef);
$em->persist($address);

$person = new Person();
$person->populate($personData);
$person->setContact($contact);
$person->setAddress($address);

$em->persist($person);
$em->flush();

地址模型:

class Address implements InputFilterAwareInterface
{
/**
 * Instance of InputFilterInterface.
 *
 * @var InputFilter
 */
private $inputFilter;

/**
 * @var integer
 * @ORM\Id
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @var integer
 * @ORM\Column(name="countries_id", type="integer", nullable=false)
 */
protected $countriesId;

// Removed not important fields

/**
 * @var datetime
 * @ORM\Column(name="cdate", type="datetime", nullable=true)
 */
protected $cdate;

/**
 * @var datetime
 * @ORM\Column(name="udate", type="datetime", nullable=true)
 */
protected $udate;

/**
 * @var \Admin\Entity\Company
 * @ORM\OneToOne(targetEntity="\Admin\Entity\Company", mappedBy="address")
 * @ORM\JoinColumn(name="id", referencedColumnName="addresses_id", nullable=false)
 */
protected $company;

/**
 * @var \Admin\Entity\Person
 * @ORM\OneToOne(targetEntity="\Admin\Entity\Person", mappedBy="address")
 * @ORM\JoinColumn(name="id", referencedColumnName="addresses_id", nullable=false)
 */
protected $person;

/**
 * @var \Admin\Entity\Country
 * @ORM\ManyToOne(targetEntity="\Admin\Entity\Country", inversedBy="addresses")
 * @ORM\JoinColumn(name="countries_id", referencedColumnName="id", nullable=false)
 */
protected $country;

触头型号:

class Contact implements InputFilterAwareInterface
{
/**
 * Instance of InputFilterInterface.
 *
 * @var InputFilter
 */
private $inputFilter;

/**
 * @var integer
 * @ORM\Id
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * Primary email address
 *
 * @var string
 * @ORM\Column(name="email", type="string", length=100, nullable=true, options={"comment"="Primary email address"})
 */
protected $email;


// Removed not important fields

/**
 * @var datetime
 * @ORM\Column(name="cdate", type="datetime", nullable=true)
 */
protected $cdate;

/**
 * @var datetime
 * @ORM\Column(name="udate", type="datetime", nullable=true)
 */
protected $udate;

/**
 * @var \Admin\Entity\CompaniesHasPerson
 * @ORM\OneToOne(targetEntity="\Admin\Entity\CompaniesHasPerson", mappedBy="contact")
 * @ORM\JoinColumn(name="id", referencedColumnName="contact_id", nullable=false)
 */
protected $companiesHasPerson;

/**
 * @var \Admin\Entity\Company
 * @ORM\OneToOne(targetEntity="\Admin\Entity\Company", mappedBy="contact")
 * @ORM\JoinColumn(name="id", referencedColumnName="contact_id", nullable=false)
 */
protected $company;

/**
 * @var \Admin\Entity\Person
 * @ORM\OneToOne(targetEntity="\Admin\Entity\Person", mappedBy="contact")
 * @ORM\JoinColumn(name="id", referencedColumnName="contact_id", nullable=false)
 */
protected $person;

而且奇怪的事实是,当我将地址模型与联系人模型切换并首先坚持使用地址模型时,学说将引发错误:

An exception occurred while executing 'INSERT INTO persons (contact_id, addresses_id, files_id, firstname, middlename, lastname, gender, birthday, cdate, udate, id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [null, 2, null, "Foo", "", "Bar", 1, null, "2014-01-10 16:16:50", null, null]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'contact_id' cannot be null
盛开

乍一看:name="id", referencedColumnName="contact_id"走错路了。

http://docs.doctrine-project.org/en/latest/reference/association-mapping.html#one-to-one-bidirectional

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Doctrine2 PDO异常完整性违反1048-加载夹具-YML

来自分类Dev

Doctrine2一对一关系父代ID未保存在子代中

来自分类Dev

Doctrine2一对一关系父代ID未保存在子代中

来自分类Dev

Symfony 3.4/Doctrine 2 一对一关联错误

来自分类Dev

Doctrine2一对一正确完成

来自分类Dev

如何将doctrine2实体一对一设置为“活动”的实体

来自分类Dev

Doctrine&Symfony2-违反完整性约束:1062键“ PRIMARY”的条目“ xy”重复

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1048列

来自分类Dev

插入一对一关系

来自分类Dev

一对一关系插入

来自分类Dev

Yii2:自定义违反完整性约束时的错误消息

来自分类Dev

将数据插入具有单一格式的两个表中。Laravel:错误完整性约束违反

来自分类Dev

Symfony2一对一关系表

来自分类Dev

Symfony2一对一关系

来自分类Dev

SQLSTATE[23000]:违反完整性约束:1048 列“product_id”不能为空(SQL:插入“category_product”)

来自分类Dev

在Symfony2 / Doctrine中:在一对一关系中将外键设置为不为null似乎是不可能的

来自分类Dev

在Symfony2 / Doctrine中:在一对一关系中将外键设置为不为null似乎是不可能的

来自分类Dev

定义了 2 个模型之间的一对一关系,但似乎仍然能够建立一对多

来自分类Dev

将 Doctrine 的一对一关系映射为 XML 中的主键

来自分类Dev

路由问题一对一关联

来自分类Dev

路由问题一对一关联

来自分类Dev

检索多条记录上的一对一关联

来自分类Dev

cakePHP一对一关联需要帮助

来自分类Dev

如何使用一对一关系关联模型

来自分类Dev

Java Spring Link 关联一对一关系

来自分类Dev

当值不为null时,违反完整性约束

来自分类Dev

PostgreSQL:2个表之间的完整性约束

来自分类Dev

违反完整性约束:1048列“ taggable_id”不能为空

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1048列“ post”不能为空

Related 相关文章

  1. 1

    Doctrine2 PDO异常完整性违反1048-加载夹具-YML

  2. 2

    Doctrine2一对一关系父代ID未保存在子代中

  3. 3

    Doctrine2一对一关系父代ID未保存在子代中

  4. 4

    Symfony 3.4/Doctrine 2 一对一关联错误

  5. 5

    Doctrine2一对一正确完成

  6. 6

    如何将doctrine2实体一对一设置为“活动”的实体

  7. 7

    Doctrine&Symfony2-违反完整性约束:1062键“ PRIMARY”的条目“ xy”重复

  8. 8

    SQLSTATE [23000]:违反完整性约束:1048列

  9. 9

    插入一对一关系

  10. 10

    一对一关系插入

  11. 11

    Yii2:自定义违反完整性约束时的错误消息

  12. 12

    将数据插入具有单一格式的两个表中。Laravel:错误完整性约束违反

  13. 13

    Symfony2一对一关系表

  14. 14

    Symfony2一对一关系

  15. 15

    SQLSTATE[23000]:违反完整性约束:1048 列“product_id”不能为空(SQL:插入“category_product”)

  16. 16

    在Symfony2 / Doctrine中:在一对一关系中将外键设置为不为null似乎是不可能的

  17. 17

    在Symfony2 / Doctrine中:在一对一关系中将外键设置为不为null似乎是不可能的

  18. 18

    定义了 2 个模型之间的一对一关系,但似乎仍然能够建立一对多

  19. 19

    将 Doctrine 的一对一关系映射为 XML 中的主键

  20. 20

    路由问题一对一关联

  21. 21

    路由问题一对一关联

  22. 22

    检索多条记录上的一对一关联

  23. 23

    cakePHP一对一关联需要帮助

  24. 24

    如何使用一对一关系关联模型

  25. 25

    Java Spring Link 关联一对一关系

  26. 26

    当值不为null时,违反完整性约束

  27. 27

    PostgreSQL:2个表之间的完整性约束

  28. 28

    违反完整性约束:1048列“ taggable_id”不能为空

  29. 29

    SQLSTATE [23000]:违反完整性约束:1048列“ post”不能为空

热门标签

归档