指定された文字で始まるレコードの検索方法は?例えばSymfony2指定された文字で始まるレコードを見つけるには?
:ユーザ名が解@KwidoでA
Userクラス
<?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
}
とコントローラのアクションで始まるユーザーのみ
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));
}
これは私が持っているものすべてです。これは、エラー私に与える
querybuilder教義の
Like
exprの クラスDemoBundle \コントローラ\ DefaultController」
EntityManagerを取得するコントローラクラスでは、 '$ this-> getEntityManager()'の代わりに '$ this-> getDoctrine() - > getManager()'を呼び出す必要があります。それを変更して、やり直してください。 – rogeriolino
ありがとうございます、それは動作します。しかし、クエリはnullを返します。データベースには約4kのランダムなユーザーがいます。 –