通过注释对象字段进行学说ORM订单



,因此很简单:我在某些实体中有以下代码

     /**
     * @var ServiceOffer
     *
     * @ORMOneToMany(targetEntity="ServiceOffer", mappedBy="serviceProvider")
     * @ORMOrderBy({"service" = "desc"})
     */
    private $offers;

我需要做的是这样的事情

     /**
     * @var ServiceOffer
     *
     * @ORMOneToMany(targetEntity="ServiceOffer", mappedBy="serviceProvider")
     * @ORMOrderBy({"service.points" = "desc"})
     */
    private $offers;

哪个不起作用,我不想通过我想要直接带注释的一些功能来执行此操作?

这是点:

    /**
     * @var integer
     *
     * @ORMColumn(name="points", type="integer", nullable=true)
     */
    private $points;

no。这不可能。您应该解决此创建DQL。

仅允许Orderby中的DQL片段由未合并的,无引用的字段名称和可选的ASC/DESC位置语句组成。多个字段通过逗号分隔(,)。 @manytomany或@Onetomany注释的目标类别必须存在引用的字段名称

更多的Doctrine2文档。

DQL示例

SELECT provider, offer, service
  FROM MyNamespaceEntityServiceProvider provider
  INNER JOIN provider.offers offer
  INNER JOIN offer.service service
WHERE 
  provider.id = 1

请注意,此代码段provider, offer, service返回在此处所有实体或字段都需要的重要内容很重要,以便教义将在可能的情况下加载一次。换句话说,如果您不包含任何实体并要求它,那么学说会懒惰地加载它。

相关内容

  • 没有找到相关文章

最新更新