par
agité » 11 juil. 2011, 13:16
Bonjour à tous,
Un petit soucis avec l'héritage de doctrine me bloque. J'ai créer une table pour faire on va une voiture. Après j'ai plusieurs enfants qui sont voiture noir, rouge ou verte. Dans ces voitures il ya des paramètres différents et obligatoires, par exemple ma voiture rouge doit avoir un tableau de bord spécial mais pas nécessairement pour les autres.
J'ai donc fais mes validateurs avec la méthode protégée "validate" qui étend donc un validateur personnalisé, dedans je dis voilà je veux que ma voiture rouge est son tableau de bord. Mais lorsque je créer une voiture verte il me demande quand même d'avoir cette propriété. Et je n'arrive pas à comprendre pourquoi.
Pour le Yaml de la voiture :
Code : Tout sélectionner
voiture:
nom : { type: string(255), notnull: true }
voitureRouge:
inheritance : { extends voiture, type: column_agregation, keyField: _type, keyValue: rouge }
columns:
tableau_bord: { type: string(255) }
Pour la validation, dans le modèle je ferais simplement :
protected function validate()
{
$errorStack = $this->getErrorStack();
if($this->getTableauBord() == 'toto')
{
$errorStack->add('tableau_bord', "tableau bord n'est pas toto");
}
}
Et pour finir dans mon contrôleur je ferais simplement :
public function faisLaVoiture()
{
$voiture = new Voiture();
$voiture->fromArray('tata');
if(!$voiture->isValid())
{
exit('error !');
}
}
C'est un exemple un peu stupide je l'avoue mais c'est pour expliquer brièvement ce que je souhaite faire, avez vous une idée ?