Symfony2 Doctrine2生成一个sql错误

时间:2015-09-02 14:23:46

标签: php postgresql symfony doctrine-orm

我以ID是字符串类型的方式创建了一个实体。

class Item 
{
/**
 * @var string
 *
 * @ORM\Column(name="id_item", type="string", length=60)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $idItem;
.....

当我在表单中插入新元素时,我收到错误

  

错误 - 无法创建对象:Acme \ BasicCmsBundle \ Entity \ Device   上下文:{"异常":"对象(Sonata \ AdminBundle \ Exception \ ModelManagerException)"," previous_exception_message":"执行&时发生异常#39; INSERT INTO item(referente_id)VALUES(?)' with params [null]:\ n \ n \ nSQLSTATE [23502]:非空违规:7错误:valori null nella colonna \" id_item \" violano il vincolo non-null \ nDETAIL:在errore contiene中的La riga(null,null)。"}

Doctrine ORM非在查询中插入ID。

我用:

  • Symfony 2.7
  • doctrine 2
  • sonata管理包
  • 的PostgreSQL

2 个答案:

答案 0 :(得分:0)

从错误消息中referente_id实体中未设置Item。 您应该添加(如果您没有)Item::setReferente()并通过设置正确的Referente实体来调用它。

答案 1 :(得分:0)

如果你使用postgres尝试在你的实体中插入序列生成器;)

示例:

class Item 
{
/**
  * @var string
  *
  * @ORM\Column(name="id_item", type="string", length=60)
  * @ORM\Id
  * @ORM\GeneratedValue(strategy="IDENTITY")
  * @ORM\SequenceGenerator(sequenceName="item_seq",allocationSize=1, initialValue=1)
  */
private $idItem;
相关问题