自动生成的枢轴实体中的Symfony唯一限制

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

我有一个经典的多对多教义关系,并且教义自动生成了一个数据透视表(“ article_tag”)。

我不知道如何设置唯一约束,以便该数据透视表中的每个条目(该表没有单独的Entity类)都是唯一的。有人可以分享一个例子吗?

symfony doctrine symfony4
1个回答
0
投票

您是什么意思?您需要哪种独特性?

例如,如果您的Article EntityTag Entity具有ManyToMany关系,Symfony会生成两个与Entity相关联的表(对于articletag),而第三个表article_tag具有两列article_idtag_id。在Article Entity中,您可以找到以下方法:getTags()addTag()removeTag()

/**
 * @return Collection|Tag[]
 */
public function getTags(): Collection
{
    return $this->tags;
}

public function addTag(Tag $tag): self
{
    if (!$this->tags->contains($tag)) {
        $this->tags[] = $tag;
    }

    return $this;
}

public function removeTag(Tag $tag): self
{
    if ($this->tags->contains($tag)) {
        $this->tags->removeElement($tag);
    }

    return $this;
}

addTag()removeTag()检查标记是否包含在集合中,然后进行更改

但是如果要添加新列article_tag表(orderIdx等),则需要使用ArticleTag Entity->ArticleManyToOne关系ArticleTag创建Tag- >ArticleTagManyToOne关系

祝您有美好的一天!

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