Symfony2使用Doctrine进行数据库查询方法实例总结

Symfony2中使用Doctrine ORM查询数据库的常用方法如下:

1. 查询所有:

$em = $this->getDoctrine()->getManager();
$products = $em->getRepository('AppBundle:Product')->findAll();

2. 根据ID查询:

$product = $em->getRepository('AppBundle:Product')->find($id);

3. 条件查询:

$products = $em->getRepository('AppBundle:Product')
    ->findBy(['isEnabled' => true, 'stock > ?' => 0]);

4. 分页查询:

$products = $em->getRepository('AppBundle:Product')
    ->findBy(['isEnabled' => true], ['id' => 'DESC'], 10, 20); 

第3个参数为 limit,第4个参数为 offset。

5. DQL查询:

$dql = "SELECT p FROM AppBundle:Product p WHERE p.stock > 0 ORDER BY p.price DESC";
$query = $em->createQuery($dql);
$products = $query->getResult();

6. 设置参数的DQL查询:

$dql = "SELECT p FROM AppBundle:Product p WHERE p.name LIKE :keyword ORDER BY p.price DESC";
$query = $em->createQuery($dql);
$query->setParameter('keyword', '%'.$keyword.'%');
$products = $query->getResult();  

7. 关联查询:

$dql = "SELECT p, c FROM AppBundle:Product p JOIN p.category c WHERE c.id = :id"; 
$query = $em->createQuery($dql);
$query->setParameter('id', $id);
$products = $query->getResult();  

每个元素都是 Product 和 Category 两个对象的关联数组。

这些就是Doctrine ORM在Symfony2中进行数据库查询的主要方法。

Doctrine还支持更高级的查询,包括聚合函数、子查询等,可以满足大部分数据库访问需求。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论