Как найти записи, начинающиеся с заданного символа?Symfony2 Как найти записи, начинающиеся с заданного символа?
, например: только пользователи, где имя пользователя начинается с А
пользователя класса
<?php
namespace DemoBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=50)
*/
protected $name;
/**
* @ORM\Column(type="string", length=50)
*/
protected $lastname;
public function __construct()
{
parent::__construct();
// your own logic
}
//getters and setters
}
и действие контроллера с раствором @Kwido
public function listAction($letter)
{
$queryBuilder = $this->getEntityManager()->createQueryBuilder();
$queryBuilder
->select(['user'])
->from(User::class, 'user')
->andWhere($queryBuilder->expr()->like('user.lastname', ':lastname'))
->setParameter('lastname', $queryBuilder->expr()->literal('A%'));
$result = $queryBuilder->getQuery()->getResult();
die(var_dump($result));
}
это все, что у меня есть. Это дает мне ошибку
Пытался вызвать неопределенный метод под названием "getEntityManager" из класса DemoBundle \ Controller \ контроллера по умолчанию»
В классе контроллера для получения EntityManager вам нужно вызывать '$ this-> getDoctrine() -> getManager()' вместо '$ this-> getEntityManager()'. Изменили его и повторите попытку. – rogeriolino
Спасибо, это работает. Но запрос возвращает null. В базе данных у меня около 4k случайных пользователей. –