2015-04-23 2 views

ответ

1

Вы должны использовать findOneBy(array) найти одну запись по электронной почте

$em = $this->getDoctrine()->getRepository('HomeBundle:user') 
    ->findOneBy(array('email' = >$email)); 
+1

он работал .. спасибо :) –

+0

блин я был еще быстрее @M Халид Junaid получает принятый ответ :( – Enjoyted

2

Почему бы не использовать findOneBy?

$user = $this->getDoctrine() 
->getRepository('HomeBundle:user') 
->findBy(array('email' => $email)); 
+0

он работал .. спасибо :) –

1

Для простых запросов (в основном WHERE column = value), вы можете использовать findBy или findOneBy.

$em = $this->getDoctrine()->getManager(); 
$entity = $em->getRepository('HomeBundle:user') 
      ->findOneBy(array("email"=>$email),array()); 
$entities = $em->getRepository('HomeBundle:user') 
       ->findBy(array("email"=>$email), array()); 

Если вам нужен более сложный (как >= или присоединяется), вы можете использовать query builder или dql.

Но вы должны создать Custom Repository и поставить свои запросы там, чтобы сделать их многоразовыми и сохранить ваш контроллер тонким.

Это включает в себя следующие четыре шага:

  • Создание UserRepository класса с пространством имен в HomeBundle/Entity простирающейся EntityRepository
  • Linking ваше хранилище в конфигурации объекта (аннотаций, YAML или XML)
  • Письменность функции репозитория с помощью dql или построителя запросов.
  • Вызов функции репозитория вместо findOneBy
+0

он работал. . благодаря :) –

Смежные вопросы