#doctrine-orm #symfony
#doctrine-orm #symfony
Вопрос:
Я новичок в symfony 2. Я пытаюсь использовать пользовательский репозиторий в symfony 2. После написания функции в detailsRepository.php файл. в контроллере я написал
$em = $this->getDoctrine()->getEntityManager();
$products = $em->getRepository('BundlesampleBundle:details')
->findAllWhoseEmailContains($value);
но я получаю ошибку как
Предупреждение: Отсутствует аргумент 1 для Doctrine ORM EntityRepository::__construct(), вызываемый в C:xampphtdocssymblogsrcBundlesampleBundleControllerDefaultController.php в строке 162 и определенная в C:xampphtdocssymblogvendordoctrinelibDoctrineORMEntityRepository.php строка 61 (ошибка внутреннего сервера 500)
Мой detailsRepository.php заключается в следующем
<?php
namespace BundlesampleBundleEntity;
use DoctrineORMEntityRepository;
/**
* detailsRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class detailsRepository extends EntityRepository
{
public function findAllWhoseEmailContains($value)
{
return $this->getEntityManager()
->createQuery('Select e.email from BundlesampleBundle:details e Where e.email = :email')
->setParameter('email',$value)
->getResult();
}
}
Заранее спасибо.
Ответ №1:
Вы поместили все необходимые аннотации ко всем классам, как сказано здесь:http://symfony.com/doc/current/doctrine/repository.html ? Используете ли вы последнюю версию Symfony 2.0.5?
Комментарии:
1. привет … спасибо за ответ… я обновил вопрос содержимым в моем detailsRepository.php файл
2. извините, забыл упомянуть… я использую symfony 2.0.5.
3. @Philemon Вы аннотировали свой класс entity с помощью
@ORMEntity(repositoryClass="XXX"
>? Также пространство имен для ваших пакетов с именем «Bundle» выглядит странно. Почему вы не вызвали этоPhilemon
, например?4. привет, фрактализатор, извините, я не смог понять это » @ORM Entity (repositoryClass=»XXX» » это автоматически сгенерированный при сборке класс. пожалуйста, объясните.
5. Посмотрите здесь: symfony.com/doc/current/book /…