我以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。
我用:
答案 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;