Frage

Wie generiere ich automatisch einen Primärschlüssel in Symfony2/Doctrine2?

Ich habe alle meine Entitäten und Datenbank.

In meinem Symfony2 Controller tue ich:

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

    // [...]
}

Es ist zum Testen. Das erste Mal ging alles nach rechts (Utilisateur -Tisch war leer). Wenn ich diese Funktion wieder aufrufe, bekomme ich:

SQLState [23000]: Verstoß gegen Integritätsbeschränkung: 1062 Duplikateintrag '0' für Schlüssel 'Primär' 500 Interner Serverfehler - PDOException

Ich möchte nur, dass Symfony-doctrin-mysql die Kennung automatisch erhöht.

War es hilfreich?

Lösung

Hoffentlich hilft dies: Unter der Annahme, dass Sie Anmerkungen und Doktrin verwenden, müssen Sie die Strategie auf Ihr Objekt einstellen - aus der Dokumentation (Dokumentationhttp://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;

Denken Sie daran, Ihr Datenbankschema zu aktualisieren, nachdem Sie das Objekt geändert haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top