Для простых запросов (в основном 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
он работал .. спасибо :) –
блин я был еще быстрее @M Халид Junaid получает принятый ответ :( – Enjoyted