doctrine: QueryBuilder vs createQuery?

后端 未结 5 835
青春惊慌失措
青春惊慌失措 2020-12-23 14:20

In Doctrine you can create DQL in 2 ways:

EntityManager::createQuery:

$query = $em->createQuery(\'SELECT u FROM MyProject\\Model\         


        
5条回答
  •  自闭症患者
    2020-12-23 14:55

    Query builder is just, lets say, interface to create query... It should be more comfortable to use, it does not have just add() method, but also methods like where(), andWhere(), from(), etc. But in the end, it just composes query like the one you use in the createQuery() method.

    Example of more advanced use of query builder:

    $em->createQueryBuilder()
                ->from('Project\Entities\Item', 'i')
                ->select("i, e")
                ->join("i.entity", 'e')
                ->where("i.lang = :lang AND e.album = :album")
                ->setParameter('lang', $lang)
                ->setParameter('album', $album);
    

提交回复
热议问题