Php Symfony:如何对一个实体中的一个2多个/多个2进行排序?

Php Symfony:如何对一个实体中的一个2多个/多个2进行排序?,php,symfony,sorting,orm,doctrine-orm,Php,Symfony,Sorting,Orm,Doctrine Orm,我有三个实体:Product、ProductPicture和Picture 我想按它的位置和代码对图片进行排序 结果:它没有按位置对合并的图片进行排序。它是根据图片的位置对产品进行分类 我很困惑。据我所知,我遵循了文档,但得到了一个奇怪的结果。缓存已清除 有什么想法吗?提前谢谢 实体:产品 // ... class Product { /** * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\

我有三个实体:
Product
ProductPicture
Picture

我想按它的位置和代码对图片进行排序

结果:它没有按位置对合并的图片进行排序。它是根据图片的位置对产品进行分类

我很困惑。据我所知,我遵循了文档,但得到了一个奇怪的结果。缓存已清除

有什么想法吗?提前谢谢

实体:产品

// ...
class Product {
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    protected $id;


    /**
     * @ORM\OneToMany(targetEntity="ProductPicture", mappedBy="product")
     * @ORM\OrderBy({"position" = "DESC"})    // <------ !!!
     */
    protected $pictures;

    // ...
}
实体:图片

// ...
class ProductPicture {
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    protected $id;


    /**
     * @ORM\Column(type="integer")
     */
    protected $position;


    /**
     * @ORM\ManyToOne(targetEntity="Product", inversedBy="pictures")
     * @ORM\JoinColumn(name="product_id", referencedColumnName="id")
     */
    protected $product;


    /**
     * @ORM\ManyToOne(targetEntity="Picture")
     * @ORM\JoinColumn(name="picture_id", referencedColumnName="id")
     */
    protected $picture;

    // ...
}
// ...
class Picture {
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    protected $id;


    /**
     * @ORM\Column(name="path", type="string")
     */
    protected $path;

    // ...
}
答案是正确的:

<?php
/** @Entity **/
class User
{
    // ...

    /**
     * @ManyToMany(targetEntity="Group")
     * @OrderBy({"name" = "ASC"})
     **/
    private $groups;
}

您是如何检索这些图片的?您正在执行
$product->getPictures()->getPicture()->getPath()
?如果是按图片位置对产品进行排序,那么您执行的查询是什么?