В propel 1.3 и 1.4 следующая структура наследования работала нормально.
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>
Однако при использовании propel 1.5 при создании нового наследования произнесите
inheritance key="8" class="RepeatingPayPal" extends="lib.propel.PaymentMethod"/>
Я получаю следующую ошибку
[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]
Теперь, чтобы почти решить эту проблему, я могуудалите lib.propel из раздела extends.но я все еще получаю ту же ошибку, когда я создаю наследование, которое ссылается на класс наследования, т.е.
inheritance key="3" class="ContinuousAuthorityCard"
extends="lib.propel.RecurringPaymentMethod"/>
(с или без lib.propel)
Я не уверен, является ли это ошибкой или проблемой конфигурации, но я не могу найти какие-либо документы, которые имеют дело с ситуацией.Я думаю, что мне нужно иметь возможность указывать lib.propel, поскольку у нас здесь есть классы, которые мы используем, а также классы в другом каталоге с именем rwf.lib, как вы можете видеть из baseClass таблицы, вставленной выше.
Надеюсь, кто-то может направить меня в правильном направлении.