试图调用方法" createQueryBuilder"在课堂上

时间:2016-04-15 13:51:57

标签: php symfony doctrine-orm doctrine

我有一个实体" 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".

我觉得我的功能毫无意义,这就是我收到此错误的原因。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

可以在实体管理器而不是实体上创建查询构建器。所以你使用了类的相对管理器,所以试试这个:

$qb = $this->getDoctrine()
     ->getRepository('CarPfeBundle:Vehicule')
     ->createQueryBuilder('v');

而不是:

    $qb = $vehicule->createQueryBuilder('v');

希望这个帮助