2010-07-02 6 views
1

Dans Propel 1.3 et 1.4 la structure d'héritage suivante a bien fonctionné.Problèmes d'héritage avec propel 1.5.2

 
table name="payment_method" baseClass="rwf.lib.SymmetricEncryptedObject"> 
    column name="id" type="INTEGER" required="true" autoIncrement="true" 
primaryKey="true"/> 
    column name="discriminator" type="INTEGER" inheritance="single" 
required="true"> 
     inheritance key="1" class="Card" extends="lib.propel.PaymentMethod"/> 
     inheritance key="2" class="RecurringPaymentMethod" 
extends="lib.propel.PaymentMethod"/> 
     inheritance key="4" class="DirectDebit" 
extend="lib.propel.RecurringPaymentMethod"/> 
     inheritance key="5" class="Cheque" 
extends="lib.propel.PaymentMethod"/> 
     inheritance key="6" class="PayPal" 
extends="lib.propel.PaymentMethod"/> 
     inheritance key="7" class="Moto" extends="lib.propel.PaymentMethod"/> 
    /column> 

Cependant, avec Propel 1.5 lorsque vous créez un nouveau héritage dire

 
inheritance key="8" class="RepeatingPayPal" extends="lib.propel.PaymentMethod"/> 

je reçois l'erreur suivante

 
[PHP Error] Argument 1 passed to DataModelBuilder::getNewStubObjectBuilder() 
must be an instance of Table, null given, called in /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/builder/om/PH P5MultiExtendObjectBuilder.phpon 
line 119 and defined [line 432 of /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/builder/DataM odelBuilder.php] 
[PHP Error] Argument 1 passed to GeneratorConfig::getConfiguredBuilder() 
must be an instance of Table, null given, called in /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/builder/DataM odelBuilder.phpon 
line 434 and defined [line 180 of /usr/local/www/ 
d/extlib/propel-1.5.2/generator/lib/config/Genera torConfig.php] 
[PHP Error] Argument 1 passed to ObjectBuilder::__construct() must be an 
instance of Table, null given, called in /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/config/Genera torConfig.phpon 
line 183 and defined [line 30 of /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/builder/om/Ob jectBuilder.php] 
[PHP Error] Argument 1 passed to DataModelBuilder::__construct() must be an 
instance of Table, null given, called in /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/builder/om/Ob jectBuilder.phpon 
line 31 and defined [line 160 of /usr/local/www/ 
/extlib/propel-1.5.2/generator/lib/builder/DataM odelBuilder.php] 

Maintenant, pour résoudre presque ce que je peux retirer le lib.propel de la section s'étend . mais je reçois toujours la même erreur lorsque je crée un héritage qui fait référence à une classe d'héritage ie.

 
inheritance key="3" class="ContinuousAuthorityCard" 
extends="lib.propel.RecurringPaymentMethod"/> 

(avec ou sans lib.propel)

je ne suis pas sûr que ce soit un bug ou un problème de configuration, mais je ne peux pas trouver des documents qui traitent de la situation. Je pense que je dois être en mesure d'indiquer lib.propel comme nous avons des classes ici que nous utilisons et classe également avec un autre répertoire appelé rwf.lib comme vous pouvez le voir dans la baseClass du tableau collé ci-dessus. J'espère que quelqu'un peut me diriger dans la bonne direction.

Répondre

0

J'ai donc décidé que je n'avais plus besoin de la lib.propel qui a eu le premier problème.

Il y avait un deuxième problème que j'ai rencontré avec l'héritage et c'est le bug que j'ai posté http://www.propelorm.org/ticket/1033 si quelqu'un est intéressé par cela.

Questions connexes