symfony 1.2 と propel で非常に厄介な問題があります。
単一テーブル戦略を使用して継承を実装したモデルがあります。したがって、ここに私のモデルの抜粋があります:
Ad (id, posted_date, description) 次に、RealEstateAd(location, price, transaction_type) と JobAd(position, requirements, company) で、Ad から両方を継承します。
すべての広告を表示したいのですが、RealEstateAd は JobAd とは異なる方法で表示したいと考えています。これを実現するために、RealEstateAd のパーシャルと JobAd のパーシャルを使用しました。
そのため、アクションでは次のようにしました。
$c = new Criteria();
$this->allAds = AdPeer::doSelect($c);
テンプレートで、各オブジェクトのクラスを確認します。
$add = $allAds[$i];
if ($add instanceof RealEstateAdd)
//Use the RealEstatePartial
問題は、$allAds 配列内のオブジェクトのクラスが sfOutputEscaperObjectDecorator であることです。そのため、何も表示されません。
どうすればこの問題に対処できますか? 実際に RealEstateAd または JobAd クラスのオブジェクトを含む配列を取得する方法はありますか? ここでの水和プロセスはどのように行われますか?