Доктрина 2, метод неопределенной сущности findOneBy * - PullRequest
6 голосов
/ 25 марта 2011

У меня странная проблема.Вот сообщение об ошибке:

Вызов неопределенного метода MyProject\BlogBundle\Entity\Blog::findOneById()

Я настроил отображение, класс сущности был создан с помощью консоли, и я обновил схему в базе данных.Что может быть причиной этой проблемы?

Я использую symfony2.Вот строчка:

$blogRepo = $this->get('myproject.blog.repository.blog');  
$blog = $blogRepo->findOneById($id);  

Есть идеи?

Ответы [ 3 ]

8 голосов
/ 30 марта 2011

findOneById не существует, попробуйте

$ blogRepo-> findOneBy (массив ('id' => $ id));

где 'id' - это существующее поле в вашей сущности.

Вы можете проверить документацию класса Doctrine здесь: EntityRepository

Редактировать: похоже, что findOneById существует, пока у сущности есть поле "Id". Проверьте документы . Спасибо Ryall за указание на это

5 голосов
/ 25 марта 2011

Что такое определение сервиса myproject.blog.repository.blog? Похоже, что вы отображаете его на MyProject\BlogBundle\Entity\Blog, в то время как оно действительно должно быть MyProject\BlogBundle\Entity\BlogRepository.

Вместо создания собственного класса репозитория вы также можете создать его на лету с помощью EntityManager.

$user = $em->getRepository('MyProject\Domain\User')->find($id);

Или даже короче:

$user = $em->find('MyProject\Domain\User', $id);

Взято из Документация ORM Doctrine2 .

0 голосов
/ 28 июня 2017

попробуйте

$blogRepo = $this->getRepository('myproject.blog.repository.blog');  
$blog = $blogRepo->findOneById($id);  

getRepository

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...