Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php doctrine GeneratedValue=NONE保持为Id插入NULL_Php_Mysql_Doctrine Orm_Doctrine_Symfony - Fatal编程技术网

Php doctrine GeneratedValue=NONE保持为Id插入NULL

Php doctrine GeneratedValue=NONE保持为Id插入NULL,php,mysql,doctrine-orm,doctrine,symfony,Php,Mysql,Doctrine Orm,Doctrine,Symfony,这是我的实体: class Foo { /** * @var int * @ORM\Id * @ORM\Column(name="custom_id", type="integer") * @ORM\GeneratedValue(strategy="NONE") */ private $customId; public function __construct( $customId ) { $th

这是我的实体:

class Foo
{
    /**
     * @var int
     * @ORM\Id
     * @ORM\Column(name="custom_id", type="integer")
     * @ORM\GeneratedValue(strategy="NONE")
     */
    private $customId;

    public function __construct( $customId )
    {
        $this->customId = $customId;
    }

}
现在我正在生成一个新实例

$foo = new Foo(123);
dump($foo); // shows customId: 123
$em->persist($foo);
$em->flush();
$em->clear();
执行“插入到表中”时发生异常 (自定义_id,foo,bar)值(?,?)'和参数[null,null, 空]:

SQLSTATE[23000]:完整性约束冲突:1048列 “自定义\u id”不能为空

我知道它不能为空,这就是我设置它的原因。 为什么条令用NULL覆盖该值?策略是无的,并且发生在构造器中。。。我错过了什么

删除

@ORM\GeneratedValue(strategy="NONE")

有点晚了,但万一有人要搜索它,您需要使用自定义值生成器(不做任何事情,只需将您的插入语句)


NONE意味着:将其设为null。删除生成的@ORM\r。。。行完整。“无:告诉Doctrine标识符是由您的代码分配(并由此生成的)。分配必须在新实体传递给EntityManager#persist之前进行。无与完全删除@GeneratedValue相同。”我确实删除了它,结果是一样的“无:告诉条令标识符是由您的代码分配(并由此生成)的。分配必须在将新实体传递给EntityManager#persist之前进行。没有一个和完全去掉@GeneratedValue是一样的
/**
 * @var int
 * @ORM\Id
 * @ORM\Column(name="custom_id", type="integer")
 * @ORM\GeneratedValue(strategy="CUSTOM")
 * @ORM\CustomIdGenerator(class="Doctrine\ORM\Id\AssignedGenerator")
 */
private $customId;