Я настроил Doctrine несколько таблиц наследования в моем приложении - см нижеДоктрина DQL экземпляр для мульти таблицы сущности наследования
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="type", type="string")
* @DiscriminatorMap({
* "news" = "News" ,
* "press_release" = "PressRelease"})
*
* @table(name="pages")
*/
class PressRelease extends Page {...}
class News extends Page {...}
Мой пользовательский репозиторий запроса
$query = $this->getEntityManager()->createQuery('SELECT u FROM MyStoreBundle:User u
LEFT JOIN u.page p
WHERE p INSTANCE OF :newsType'
)->setParameter('newsType', new News());
Я думал, что это будет работать, однако я продолжаю получать следующую ошибку:
Notice: Undefined index: id in /path/to/Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php line 282
Очевидно, что мой News
объект не имеет поля id
, так как это наследуется при расширении класса Page
, у которого определено свойство id
, знает ли кто-нибудь, что я делаю неправильно?
Заранее спасибо
Я думал, что это может быть случай, однако я изменил свойство родительского класса для 'protected' и он по-прежнему не работает, я» ve отлаживает это дальше, и похоже, что «Метаданные класса Doctrine» не забирают это расширенный объект, поэтому не распознают свойство родительского идентификатора – Matt