推进版本: 1.6.7
当我尝试在我的应用程序中运行以下代码时,我得到PropelException
(此代码在控制器操作下在名为AdminController
的类中运行)。有问题的代码尝试创建一个新的ContentPage
对象,它是Page
类的子类,并使用Propel的具体表继承:
$page = new ContentPage;
$page->fromData($_POST); // Modified, more secure version of fromArray();
$page->save();
除了:
调用未定义的方法:getPage
在Propel生成的类getParentOrCreate
中使用Propel生成的方法BaseContentPage
调用该方法。
//this prevent issue with deep copy & save parent object
if (null === ($parent = $this->getPage($con))) {
我的schema.xml
文件如下所示:
<!-- Page -->
<table name="page" phpName="Page">
(columns)
</table>
<!-- ContentPage : Page -->
<table name="contentpage" phpName="ContentPage">
<behavior name="concrete_inheritance">
<parameter name="extends" value="page" />
</behavior>
</table>
我的schema.xml
代码中是否有问题,或者这是你们看到并解决过的错误?
答案 0 :(得分:1)
您的架构可能是o.k.但今天我偶然发现了同样的错误。 我找到了一个解决方法并在github上创建了一个问题。 简而言之,它在concrete_inheritance行为源代码中注释掉三行代码,重新生成模型,如果还没有完成,则更新数据库。