У меня проблема с symfony 1.2 и propel, которая очень раздражает.
У меня есть модель, в которой я реализовал наследование, используя стратегию единой таблицы. Итак, вот выдержка из моей модели:
Объявление (идентификатор, дата публикации, описание)
затем RealEstateAd (местоположение, цена, тип транзакции) и JobAd (позиция, требования, компания), которые наследуют оба от 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? Как здесь происходит процесс увлажнения?