В моем приложении есть несколько пользовательских репозиториев, которые сопоставлены с соответствующими классами сущностей и файлами orm.yml.
Все они определены одинаково и имеют разную структуру, разумеется, без имен и членов.
Тем не менее, когда я пытаюсь получить пользовательские репозитории, только для конкретного я получаю суперкласс репозитория вместо правильного репозитория.
$a = $this->em->getRepository('MyAppCommonBundle:Activity'); //doesn't work
$b = $this->em->getRepository('MyAppCommonBundle:Activity:User'); //works
$c= $this->em->getRepository('MyAppCommonBundle:ActivityStatus'); //works
MyAppCommonBundle определено: MyAppCommonBundle '=>MyApp \ CommonBundle \ Entity
$ a возвращает неверный суперкласс Doctrine \ ORM \ EntityRepository, а $ b возвращает правильный MyApp \ CommonBundle \ Repository \ UserRepository, а $ c - MyApp \ CommonBundle \ Repository \ ActivityStatus
Все сущности находятся в одной папке MyApp \ CommonBundle \ Entity.Все репозитории тоже находятся в одном месте MyApp \ CommonBundle \ Repository.
Activity.orm.yml:
MyApp\CommonBundle\Entity\Activity:
type: entity
table: activity
repositoryClass: MyApp\CommonBundle\Repository\ActivityRepository
indexes:
и, например, User.orm.yml:
MyApp\CommonBundle\Entity\User:
type: entity
table: user
repositoryClass: MyApp\CommonBundle\Repository\UserRepository
Репозиторий операций:
<?php
namespace MyApp\CommonBundle\Repository;
use Doctrine\ORM\EntityRepository;
class ActivityRepository extends EntityRepository
{
Репозиторий пользователей:
<?php
namespace MyApp\CommonBundle\Repository;
use Doctrine\ORM\EntityRepository;
class UserRepository extends EntityRepository
...
Как указано выше, найдены пользовательские и другие репозитории, активность не ...
Я попытался очистить кэш, перестроив объекты без эффекта.Очевидно пытался искать опечатки и т. Д., Но выглядит хорошо.
Есть идеи?Спасибо