6

我有一个实体“评论”,一个“评论”可以关联一个或多个图像。我如何做到这一点。

现在我有了这个(只有一张图片):

/**
 * @Assert\File(
 *     maxSize="1M",
 *     mimeTypes={"image/png", "image/jpeg"}
 * )
 * @Vich\UploadableField(mapping="comment_mapping", fileNameProperty="imageName")
 *
 * @var File $image
 */
protected $image;

提前致谢

4

1 回答 1

2

您必须在 Comment 和 Image 实体之间创建多对一关系。

在此处阅读有关与教义 2 关联的更多信息。

评论

/**
 * @ORM\ManyToOne(targetEntity="Image", inversedBy="comment")
 */
protected $images;

public function __construct()
{
     $this->images = new ArrayCollection();
}

public function getImages()
{
    return $this->images;
} 

public function addImage(ImageInterface $image)
{
    if (!$this->images->contains($image)) {
        $this->images->add($image);
    }

    return $this;
}

public function removeImage(ImageInterface $image)
{
    $this->images->remove($image);

    return $this;
}

public function setImages(Collection $images)
{
   $this->images = $images;
}

// ...

图片

protected $comment;

public function getComment()
{
   return $this->comment;
}

public function setComment(CommentInterface $comment)
{
    $this->comment = $comment;

    return $this;
}

// ...

然后使用 ImageFormType 的“类型”(待创建)将集合表单字段添加到您的 CommentFormType。

于 2013-05-24T08:30:57.957 回答