I обновлен от Symfony от 2.7 до 3.0. Он работает почти. Только проблема: Я не могу перезаписать AppBundle\Entity\MyRepository
в коде ниже, файл даже не нужен (я переименовал его для тестирования) и получил пропущен Symfony.Symfony 3: не может перезаписывать репозиторий
приложение/Config/services.yml
# old, 2.7 (worked):
myRepositoryService:
class: AppBundle\Entity\MyRepository
factory_service: doctrine.orm.entity_manager
factory_method: getRepository
arguments: [AppBundle\Entity\MyEntity]
# new, 3.0 (skips the MyRepository):
myRepositoryService:
class: AppBundle\Entity\MyRepository
factory: ['@doctrine.orm.entity_manager', 'getRepository']
arguments: ['AppBundle\Entity\MyEntity']
AppBundle \ Entity \ MyRepository
class MyRepository extends EntityRepository {
public function findAll() {
die("MyRepository->findAll()"); // not executed
}
}
AppBundle \ Controller \ MyController.php
$myItems = $this->get('myRepositoryService')->findAll(); // should die but doesn't
Неужели я неправильно сконфигурировал свой services.yml, чтобы Symfony создавал временный файл репозитория для объекта вместо использования созданного мной файла?
Заранее благодарен!
Вы проверили, является ли '$ this-> get ('myRepositoryService')' экземпляром 'AppBundle \ Entity \ MyRepository'? И вы задали 'repositoryClass' этому классу в сопоставлении сущности? –
@dragoste Я забыл установить 'repositoryClass' для этого объекта. * facepalm * Пожалуйста, разместите его как ответ, и я соглашусь с ним. Большое спасибо! –
Я забыл об этом несколько раз. ;-) –