2
行走版本:1.6.7的Propel:試圖創建子對象時未定義的方法
我得到一個PropelException
當我嘗試在我的應用程序運行下面的代碼(這個代碼在一個名爲AdminController
類運行在控制器操作下)。有問題的代碼試圖創建一個新的ContentPage
對象,這是一個子類Page
類和使用波輪的混凝土表繼承:
$page = new ContentPage;
$page->fromData($_POST); // Modified, more secure version of fromArray();
$page->save();
唯一的例外是:
電話undefined方法: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
代碼,或者這是你們所看到的和周圍的工作中的錯誤?
我們可以看到更多的周圍正在生成錯誤的行代碼?它屬於另一個班級,但是如果沒有看到那個班級,很難看出是什麼引發了這個錯誤。 – DaOgre 2012-08-07 21:27:50
DaOrge,你是說在我的第一個例子中?這真的很多。 '...'段實際上是'$ page-> fromArray($ _ POST)'調用的修改版本。代碼位於控制器操作中。我用我剛纔描述的內容附加了我的問題。 主要關注的是'getPage'函數在生成的類或解決方案的其餘部分中不存在,因爲它不是由Propel生成的(Propel應該生成'getPage'方法,因爲它正在生成調用它)。 感謝您的輸入。 – satoshipayne 2012-08-08 01:57:53
在運行$ this-> getPage並確認它與您期望的相同的對象類型之前,您可以執行$ this對象的print_r,然後檢查getPage方法的結果基類嗎?如果這不起作用,請嘗試在GitHub上發佈儘可能多的代碼,並鏈接,我會看看 – DaOgre 2012-08-11 06:17:19