2010-08-24 14 views
0

J'ai un champ qui est défini comme suit:erreur de validation de la doctrine inattendue sur la longueur lors du réglage du champ nul

class Subcategory extends BaseSubcategory {} 

abstract class BaseSubcategory extends Doctrine_Record 
{ 
    public function setTableDefinition() 
    { 
     // ... 
     $this->hasColumn('meta_description', 'string', 255); 
     // ... 
    } 

    // ... 
} 

Voici ce que la table ressemble à:

mysql> DESCRIBE subcategory; 
+----------------------+------------------+------+-----+---------+----------------+ 
| Field    | Type    | Null | Key | Default | Extra   | 
+----------------------+------------------+------+-----+---------+----------------+ 
| id     | int(10) unsigned | NO | PRI | NULL | auto_increment | 
[...] 
| meta_description  | varchar(255)  | YES |  | NULL |    | 
[...] 
+----------------------+------------------+------+-----+---------+----------------+ 
10 rows in set (0.00 sec) 

Voici mon code pour sauver un record

$m = new Subcategory; 
// ... 
$m->meta_description = null; 
$m->save(); 

Je reçois l'erreur de validation suivant

* 1 validator failed on meta_description (length) 

Pourquoi cela se produit-il?

Répondre

0

Les exemples de code ci-dessus ne disent pas toute l'histoire. J'ai été induit en erreur par une sauvegarde précédente, dans laquelle le champ meta_description était surchargé de plus de 255 caractères. Fausse alarme!