我有一个实体“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/