我需要创建一个存储库,以便在表中找到指定的记录(名称)。
project s,... (S)
我这样做了,但不幸的是,它不起作用。请告诉我,我该怎么做? MySQL Query需要像这样:
class CategoryRepository extends \Doctrine\ORM\EntityRepository
{
public function getAllByName($name)
{
return $this->getEntityManager()->createQuery('SELECT * FROM AppBundle\Entity\Category WHERE name LIKE "$name"');
}
}
答案 0 :(得分:1)
可能你错过了查询对象上getResult()方法的调用,例如:
/**
* @return Category[]
*/
public function getAllByName($name)
{
return $this->getEntityManager()->createQuery('SELECT * FROM AppBundle\Entity\Category WHERE name LIKE "$name"')->getResult();
}
一些信息here in the doc
希望这个帮助
答案 1 :(得分:1)
您必须使用doctrine query builder
。
在方法getAllByName()
中添加以下代码:
$qb = $this->createQueryBuilder('c');
return $qb
->andWhere(
$qb->expr()->like('c.name', ':search'),
)
->setParameter('search', "%$search%")
->getQuery()
->getResult();
使用此方法,您可以使用LIKE
。
答案 2 :(得分:0)
工作方法:
$result = $this->getDoctrine()->getRepository('AppBundle:Category')->findBy(array('name' => '$name'));