mysql - 创建查询生成器 symfony 内连接

标签 mysql symfony orm doctrine-orm

任何人都可以将此 sql 查询转换为 symfony 中的查询生成器吗?

Select a.* From article a 
Inner Join 
  articles_devis ad On a.id=ad.article_id 
Inner Join 
  devis d On d.id=ad.devis_id 
Inner Join 
  utilisateurs u On u.id=d.user_id 
Where u.id=7 and Where  d.id=63

我已经尝试过这行代码,但它不起作用

public function ArticlesByDevisByUser(){
        $qb = $this->createQueryBuilder('a')
                ->select('a.*')
                ->from('ArticleBundle:Article', 'a')
                ->innerJoin('a.articledevis', 'ad')
                ->where('articles.id = ad.article')
                ->innerJoin('ad.devis', 'd')
                ->where('d.id = ad.devis')
                ->innerJoin('d.user', 'u')
                ->where('u.id = d.user')
                ->andWhere('u.user=7')
                ->andWhere('d.id=63');
        return $qb->getQuery()->getResult();
    }

最佳答案

您必须创建一个存储库并使用 @ORM\Entity 注释将其链接到您的文章(如果尚未完成):

在您的文章实体中:

/**
 * @ORM\Entity(repositoryClass="YourProject\YourBundle\Entity\ArticleRepository")
 *
 */
class Article
{
...
}

然后在您的 ArticleRepository 中放入您的函数:

use Doctrine\ORM\EntityRepository;

class ArticleRepository extends EntityRepository
{
    public function ArticlesByDevisByUser($userId, $devisId)
    {
       return $this->createQueryBuilder('a')
           ->innerJoin('a.articledevis', 'ad')
           ->innerJoin('a.devis', 'ad')
           ->innerJoin('a.user', 'au')
           ->where('ad.id = :devisId')
           ->andWhere('au.id = :userId')
           ->setParameter('userId', $userId)
           ->setParameter('devisId', $devisId)
           ->getQuery()
           ->getResult();
    }
}

我将 articledevisdevisuser 放在 innerJoin 中,但这取决于您在文章实体

关于mysql - 创建查询生成器 symfony 内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661410/

相关文章:

java - 如何解决 Hibernate 异常 "IllegalArgumentException occurred while calling setter"的原因?

php - MySQL计数问题

mysql - 选择 - MySQL 中按单词排序?

php - 制定复杂的 Doctrine2 DQL 查询

java - 对 child 有限制的 hibernate 标准

java - 具有不同类的单个类中多个 @oneToMany 关联的持久性问题

php - 哪个数据库架构师最适合网站/页面统计计数

使用用户定义函数的 SQL 查询中的 MySQL IN 子句

php - 学说左加入多对一

forms - symfony2 表单中的空文本字段设置为 null