2015-09-30 51 views
0

我有三個實體:Product,ProductPicturePictureSymfony:如何排序One2Many/Many2One的一個實體?

我想的照片排序它的位置和下方this,代碼嘗試。

結果:它不是按位置排序的加入圖片。它按照圖片的位置排序產品。

我很困惑。據我所知,我跟着文檔,但得到一個奇怪的結果。緩存被清除。

任何想法?提前致謝!

實體:產品

// ... 
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; 

    // ... 
} 

實體:ProductPicture

// ... 
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; 

    // ... 
} 
+0

你是如何獲取的圖片?你在做'$ product-> getPictures() - > getPicture() - > getPath()'?如果按照圖片的位置對產品進行排序,那麼您展示的是哪種查詢? –

回答

0

docs是正確的:

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

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

在我的情況下repositoryfindAll() - 方法被覆蓋而導致這個爛攤子。請確保,如果您遇到同樣的問題,您的自定義查詢與教義默認值不衝突。 :-)

相關問題