,因此很简单:我在某些实体中有以下代码
/**
* @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
返回在此处所有实体或字段都需要的重要内容很重要,以便教义将在可能的情况下加载一次。换句话说,如果您不包含任何实体并要求它,那么学说会懒惰地加载它。