Domanda

Come per generare automaticamente una chiave primaria in Symfony2 / Doctrine2?

ho tutti i miei entità e database di fatto.

Nel mio controller di Symfony2, lo faccio:

<?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();

    // [...]
}

E 'per il test. La prima volta che tutto è andato a destra (Utilisateur tavolo era vuoto). Ora, quando chiamo di nuovo questa funzione, ottengo:

SQLSTATE [23000]: Integrità violazione del vincolo: 1.062 voce duplicata '0' per la chiave 'primaria' Errore 500 Internal Server - PDOException

Voglio solo Symfony-dottrina-Mysql automaticamente incrementare l'identificatore.

È stato utile?

Soluzione

Speriamo che questo aiuta: supponendo che si sta utilizzando le annotazioni e ORM Doctrine, è necessario impostare la strategia per l'auto sul vostro oggetto - dalla documentazione ( 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;

ricordarsi di aggiornare lo schema del database dopo aver modificato l'oggetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top