2013-05-24 5 views
5

エンティティ「コメント」があり、「コメント」に1つ以上のイメージが関連付けられている可能性があります。 どのように達成するのですか?あなたのコメントと画像エンティティ間のManyToOne関係を作成する必要があり、事前VichUploaderBundleを使用してエンティティにイメージのリストを設定する

+0

私のコメントを読んで、適切であればそれを受け入れて、あなたが理解していないことをコメントしてください。私は答えを更新します。 – nifr

答えて

2

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

ありがとう:

今私は(ちょうど1の画像のために)これを持っています。

doctrine 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; 
} 

// ... 

は、次に(作成される)ImageFormTypeの "タイプ" をごCommentFormTypeにcollection formフィールドを追加します。

+0

はい、その場合、私は新しいエンティティImageを作成する必要があります。コメントエンティティとVichUploaderBundleを使用するだけでよいかどうか知りたい場合 – Oriam

+1

コメントエンティティに複数の画像プロパティを追加しなければ不可能ですが、それは間違っています。 – nifr

+0

ああ、ありがとう、しかし、それは狂っています。場合によっては画像の数を知っていることもありますが、そうでない場合もあります。 – Oriam

関連する問題