【问题标题】:Symfony2 - How can do rewrite this doctrine query without leftJoin statementSymfony2 - 如何在没有 leftJoin 语句的情况下重写这个学说查询
【发布时间】:2014-07-24 06:03:31
【问题描述】:

我正在使用查询来按类型选择帖子。这与 Type to Post 具有 OneToMany/ManyToOne 关系。

如何在不使用 leftJoin 语句的情况下重写它?

此查询有效并按类型标题发布,但如果不需要连接,则希望重新编写它。

查询

public function getPostsByType($type)
{
    return $this->createQueryBuilder('post')
    ->leftJoin('post.type','type')
    ->andWhere('type.title = :type')
    ->setParameter('type', $type)
    ->orderBy('post.createdAt', 'DESC')
    ->getQuery()
    ->getResult();
}

发帖

/**
 * @ORM\ManyToOne(targetEntity="Type", inversedBy="posts")
 * @ORM\JoinColumn(name="type_id", referencedColumnName="id")
 */
protected $type;

类型

/**
 * @ORM\OneToMany(targetEntity="Post", mappedBy="type")
 */
protected $posts;

【问题讨论】:

    标签: symfony doctrine-orm


    【解决方案1】:

    您可以通过Type id 选择Post,如下所示:

    public function getPostsByType($type)
    {
        return $this->createQueryBuilder('post')
        ->where('post.type = :typeId')
        ->setParameter('typeId', $type->getId())
        ->orderBy('post.createdAt', 'DESC')
        ->getQuery()
        ->getResult();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      相关资源
      最近更新 更多