我想从我的EntityRepository创建一个请求,所以这是我的代码:
<?php
namespace zhr\myprojectBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
* myprojectdbEntityRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class myprojectdbEntityRepository extends EntityRepository
{
public function getAll()
{
$qb = $this->createQueryBuilder('s');
$query = $qb;
$result = $qb->getQuery()->execute();
}
}
我想在我的控制器文件中使用它,所以这是我的代码:
public function searchusersAction(Request $ request) {
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository('myprojectBundle:User');
$utilisateur = $repository->getAll();
var_dump($utilisateur); die();
//return $this->render('mypageBundle:Admin:adminindex.html.twig', array('sheet'=>$utilisateur));
}
我收到错误:
未定义的方法&#39; getAll&#39;。方法名称必须以findBy或findOneBy!
开头??? normaly必须在我的控制器文件中定义存储库文件中的所有方法吗?
首先感谢你们
答案 0 :(得分:0)
您必须使用getResult()
返回结果,如下所示:
public function getAll()
{
return $this->createQueryBuilder('s')->getQuery()->getResult();
}
但是你真的不需要这种功能,因为EntityRepository
类已经有findAll()
函数来获取实体的所有行:
$em = $this->getDoctrine()->getManager();
$rows = $em->getRepository('myprojectBundle:User')->findAll();
我建议您查看QueryBuilder和EntityRepository api。
的文档