2010-10-19 4 views
1

J'ai beaucoup joué avec Doctrine 1.2. Créer et supprimer des enregistrements ne sont plus un problème;). Mais parfois j'ai des enregistrements vides dans ma base de données. Chaque champ est défini sur NULL. J'ai le sentiment que cela a quelque chose à voir avec les relations. Comment puis-je empêcher Doctrine de créer de telles entrées vides.PHPs Doctrine crée des enregistrements vides

+1

Vous devez d'abord localiser le problème exact. Postez votre code ou faites quelque chose pour le déboguer et localiser l'endroit, où les enregistrements vides apparaissent. –

Répondre

1

Dans votre schéma, utilisez la balise notnull: true pour forcer les champs non vides et utiliser primaire: true pour de id-à-dire:

table: 
    columns: 
    id: 
     primary: true 
     unsigned: true 
     type: integer(4) 
     autoincrement: true 
    field: 
     type: ... 
     notnull: true 

Je cela ne vous aide pas, s'il vous plaît mettre plus d'informations

0

Cela devrait être un problème dans le code, la doctrine elle-même ne crée pas d'enregistrements vides. Je crois que vous gardez quelque part un modèle null rempli.

Soyez prudent avec notnull:true car il conduit à des incompatibilités avec Oracle, si vous ne résolvez pas problème ci-dessus.

0

J'ai seulement trouvé cette solution quelque peu hackish jusqu'ici, à insérer pour chaque domaine connexe pour lequel une valeur nulle devrait être possible.

public function preSave($trigger) { 

    // Avoid empty relations 
    if(!$this->getRelatedobjectId()) 
    $this->setRelatedobject(null); 
    } 
} 
Questions connexes