【发布时间】:2009-11-28 18:34:42
【问题描述】:
我有一个非常烦人的 symfony 1.2 和推进问题。
我有一个模型,我使用单表策略实现了继承。所以,这是我的模型的摘录:
广告(id、posted_date、描述)
然后是继承自 Ad 的 RealEstateAd(location, price, transaction_type) 和 JobAd(position, requirements, company)。
我想显示所有广告,但我想以不同于 JobAd 的方式显示 RealEstateAd。为了实现这一点,我为 RealEstateAd 使用了部分,为 JobAd 使用了部分。
所以,在行动中,我这样做了:
$c = new Criteria();
$this->allAds = AdPeer::doSelect($c);
在模板中,我检查每个对象的类:
$add = $allAds[$i];
if ($add instanceof RealEstateAdd)
//Use the RealEstatePartial
问题是 $allAds 数组中的对象类是 sfOutputEscaperObjectDecorator。 所以,什么都没有显示。
我该如何处理这个问题?有没有办法获得一个包含实际属于 RealEstateAd 或 JobAd 类的对象的数组?这里的补水过程是如何进行的?
【问题讨论】:
-
我遇到了与 Propel 单表继承相关的问题。 Peers 没有返回正确类型的对象。非常感谢任何帮助:stackoverflow.com/questions/2067354/…
标签: php inheritance symfony1 propel