属于数据透视表(中间)表的字段(mediaOrder)的排序顺序不起作用

问题描述 投票:0回答:0

`有人可以在这种情况下指导我吗? 我想在属于数据透视表(中间)表的字段(mediaOrder)上应用排序顺序,并且数据透视表没有任何实体,因为我们使用的是具有下面提到的关系的 ORM。

    /** * @ORM\ManyToMany(targetEntity=MediaItem::class, cascade={"persist"}) * @ORM\JoinTable(name="template_facebook_post_media_item", *     joinColumns={@JoinColumn(name="template_facebook_post_id", referencedColumnName="id")}, *     inverseJoinColumns={@JoinColumn(name="media_item_id", referencedColumnName="id")} * ) * @Groups({"template-read"}) */ private $mediaItems;

我尝试申请 order by 但没有按预期工作。 使用上面的代码我得到了带有 mediaItems 的 facebookposts 但 mediaItems 没有按数据透视表中新添加的 mediaOrder 列排序。

我分裂是因为原则不允许在数据透视表中排序所以我创建了一个新实体并更新了我的三个文件代码下面的关系

新创建的实体代码在这里

 <?php


    namespace App\Entity;

    use Doctrine\ORM\Mapping as ORM;

     /**
     * @ORM\Entity()
     * @ORM\Table(name="template_facebook_post_media_item")
     */
     class TemplateFacebookPostMediaItem
  {
/**
 * @ORM\Id()
 * @ORM\GeneratedValue()
 * @ORM\Column(type="integer")
 */
private $id;

/**
 * @ORM\ManyToOne(targetEntity=TemplateFacebookPost::class, inversedBy="templateFacebookPostMediaItems")
 * @ORM\JoinColumn(name="template_facebook_post_id", referencedColumnName="id")
 */
private $templateFacebookPost;

/**
 * @ORM\ManyToOne(targetEntity=MediaItem::class, inversedBy="templateFacebookPostMediaItems")
 * @ORM\JoinColumn(name="media_item_id", referencedColumnName="id")
 */
private $mediaItem;

/**
 * @ORM\Column(type="integer")
 */
private $mediaOrder;

public function getId(): ?int
{
    return $this->id;
}

public function getTemplateFacebookPost(): ?TemplateFacebookPost
{
    return $this->templateFacebookPost;
}

public function setTemplateFacebookPost(?TemplateFacebookPost $templateFacebookPost): self
{
    $this->templateFacebookPost = $templateFacebookPost;

    return $this;
}

public function getMediaItem(): ?MediaItem
{
    return $this->mediaItem;
}

public function setMediaItem(?MediaItem $mediaItem): self
{
    $this->mediaItem = $mediaItem;

    return $this;
}

public function getMediaOrder(): ?int
{
    return $this->mediaOrder;
}

public function setMediaOrder(int $mediaOrder): self
{
    $this->mediaOrder = $mediaOrder;

    return $this;
   }
 }

现在我只得到 Facebook 帖子的结果,但它应该与多个媒体项数组一起使用。`

doctrine-orm
© www.soinside.com 2019 - 2024. All rights reserved.