Wie finde ich Datensätze, die mit einem bestimmten Zeichen beginnen?Symfony2 Wie finde ich Datensätze, die mit einem bestimmten Zeichen beginnen?
zum Beispiel: nur Benutzer, wo Benutzernamen mit dem
<?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
}
und Controller-Aktion mit Lösung @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));
}
all
Benutzerklasse
A beginnt, ist, was ich habe. Dies gibt mir FehlerVersuchte eine nicht definierte Methode "getEntityManager" von Klasse DemoBundle \ Controllers \ default“
In der Controller-Klasse, um EntityManager zu erhalten, müssen Sie '$ this-> getDoctrine() -> getManager()' anstelle von '$ this-> getEntityManager()' aufrufen. Geändert und es erneut versuchen. – rogeriolino
Danke, es funktioniert. Aber die Abfrage gibt null zurück. In der Datenbank habe ich ungefähr 4k zufällige Benutzer. –