mysql - 在 symfony2 和 mysql 中生成主键

标签 mysql doctrine-orm symfony auto-increment uniqueidentifier

Symfony2/Doctrine2 如何自动生成主键?

我已经创建了所有实体和数据库。

在我的 Symfony2 Controller 中,我这样做:

<?php
/**
 * @Route("/myroute", name="myroute")
 * @Template()
 */
public function myrouteAction()
{
    /* Page de Création d'un retrait ou d'une réexpédition. */
    $obj = new Utilisateur();
    $obj->setUsermail('contact@mydomain.com');
    $obj->setUserpass('coucou');
    $obj->setUservalide('1');

    $em = $this->getDoctrine()->getEntityManager();
    $em->persist($obj);
    $em->flush();

    // [...]
}

用于测试。 第一次一切顺利(Utilisateur 表是空的)。现在,当我再次调用这个函数时,我得到:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY' 500 Internal Server Error - PDOException

我只是想让 Symfony-Doctrine-Mysql 自动增加标识符。

最佳答案

希望这会有所帮助:假设您正在使用注释和 Doctrine ORM,您需要将策略设置为在您的对象上自动 - 来自文档 (http://symfony.com/doc/current/book/doctrine.html)

/**
 * @ORM\Entity
 * @ORM\Table(name="product")
 */
class Product
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
-->  * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

记得在修改对象后更新数据库模式。

关于mysql - 在 symfony2 和 mysql 中生成主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7804052/

相关文章:

php - 在 Silex 中检测环境类型(生产、开发或暂存)

symfony - 在 Jenkins 盒子上使用 capifony 进行学说迁移

php - MySQL 查询系统规范,例如已安装的 RAM 或 CPU

php - 使用图像映射和 html 选择元素从数据库检索经销商信息

doctrine-orm - 原则 2. 查询生成器。关联实例类型

symfony - 如何在 Symfony2 中使用 Doctrine2 创建 2 个连接(mysql 和 postgresql)

php - 为什么mysql HEX改变二进制列的大小写?

mysql - mysql中如何将结果行改为列

php - 使用 Doctrine 查询生成器插入记录

php - Symonfy2 验证 : define constraints in yml, 并验证一个数组