2

Propelバージョン:1.6.7

アプリケーションで次のコードを実行しようとすると、がPropelException表示されます(このコードはAdminController、コントローラーアクションの下で呼び出されるクラスで実行されます)。ContentPage問題のコードは、クラスのサブクラスであり、PagePropelの具象テーブル継承を使用して新しいオブジェクトを作成しようとします。

$page = new ContentPage;
$page->fromData($_POST); // Modified, more secure version of fromArray();
$page->save();

例外は次のとおりです。

未定義のメソッドの呼び出し:getPage

getParentOrCreatePropel生成クラスの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、それともこれは皆さんが見て回避したバグですか?

4

1 に答える 1

1

あなたのスキーマはおそらく問題ありませんが、今日同じエラーに出くわしました。回避策を見つけて、github で問題を作成しました。つまり、concrete_inheritance 動作のソース コード内の 3 行のコードをコメント アウトし、モデルを再生成します。まだ実行していない場合は、データベースを更新します。

https://github.com/propelorm/PropelBundle/issues/206

于 2013-01-25T17:35:51.650 に答える