我有一个实体" Vehicules"与实体" User"具有ManyToOne关系。因此每个用户都有一个或多个车辆。我试图计算用户的车辆数量,并尝试在表格中显示它。 这是我的实体Vehicule的一部分
/**
* @ORM\ManyToOne(targetEntity="OC\UserBundle\Entity\User")
* @ORM\JoinColumn(name="User_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $direction;
这是我想要计算用户(方向)的车辆数量并将其显示在表格中的功能
public function afficheAction() {
$em = $this->getDoctrine();
$demandes = $em->getRepository('DemandevehBundle:Demande')->findAll();
// trying to count the number of vehicules foreach direction
$vehicules = $this->getDoctrine()->getRepository('CarPfeBundle:Vehicule')->findAll();
foreach($vehicules as $vehicule) {
$qb = $vehicule->createQueryBuilder('v');
$qb->select('count(v.id)');
$qb->where('v.direction = ?1');
$qb->setParameter('1', $vehicule->getId());
$query = $qb->getQuery();
$result = $query->getSingleScalarResult();
return $result;
}
// fin
return $this->render('DemandevehBundle:Demande:affiche.html.twig', array('demandes' => $demandes
,'result' => $result));
}
我收到此错误
Attempted to call method "createQueryBuilder" on class "Car\PfeBundle\Entity\Vehicule".
我觉得我的功能毫无意义,这就是我收到此错误的原因。有什么帮助吗?
答案 0 :(得分:1)
可以在实体管理器而不是实体上创建查询构建器。所以你使用了类的相对管理器,所以试试这个:
$qb = $this->getDoctrine()
->getRepository('CarPfeBundle:Vehicule')
->createQueryBuilder('v');
而不是:
$qb = $vehicule->createQueryBuilder('v');
希望这个帮助