Простой способ получить запись из базы данных.
$user = $em->find('Entities\User', $id);Очень часто нам приходится работать с репозиториями объектов (что-то общее с коллекциями Doctrine1).
$user = $em->getRepository('Entities\User')->find($id);В данном случае менеджер проверяет репозитории сопоставленные с данным классом и если таких нет,
то использует класс репозитория по-умолчанию (Doctrine\ORM\EntityRepository). Он содержит
следующие базовые методы:
public function findAll() public function findBy(array $criteria) public function findOneBy(array $criteria)Часто этого бывает недостаточно. Класс EntityRepository содержит метод
public function createQueryBuilder($alias)Мы можем наследовать базовый класс и создавать собственные репозитории
namespace Repositories; use Doctrine\ORM\EntityRepository; use Entities; class UserRepository extends EntityRepository { public function finderMethod($arguments){ // My custom query etc } }Мы должны указать, что надо использовать новый репозиторий в классе модели
namespace Entities; /** @Entity(repositoryClass="Repositories\UserRepository") * @Table(name="dealers") */ class User ...Теперь мы можем это использовать
$users = $em->getRepository('Entities\User')->finderMethod($arguments);
Комментариев нет:
Отправить комментарий