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

现在我有这个(仅一张图像):

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

提前致谢

最佳答案

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

阅读更多有关与学说2 here的关联的信息。

评论

/**
 * @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;
}

// ...

然后将一个collection form字段与ImageFormType的“类型”(要创建)一起添加到CommentFormType中。

关于php - 使用VichUploaderBundle将图像列表设置为实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16725875/

10-13 07:14