2012-01-14 11 views
2

私のSymfony2アプリケーションでは、複数の画像が必要な製品があると思われますが、20個の製品と1個の製品ページ。残りの画像は、ユーザーが特定の製品を開いたときに表示され、その製品のすべての詳細が残りの画像を含めて表示されます。基本的にほとんどの製品サイトが動作します。Symfony2とDoctrine2製品と画像のマッピングが管理に効率的でない

私のようにそれをマッピングしている:それは大丈夫動作しますが、私は新しいアイテムを作成するためのフォームを作成するときに、それがすべてと複数選択を示し

/** 
* @ORM\Entity(repositoryClass="Webmuch\ShopBundle\Repository\ProductimageRepository") 
* @ORM\Table(name="productimage") 
* @ORM\HasLifecycleCallbacks() 
*/ 
class Productimage 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string", length=255) 
    */ 
    protected $imagePath; 

    /** 
    * @ORM\Column(type="datetime") 
    */ 
    protected $created; 

    /** 
    * @ORM\Column(type="boolean") 
    */  
    protected $mainImage; 
} 

/** 
* @ORM\Entity() 
* @ORM\Table(name="product") 
* @ORM\HasLifecycleCallbacks() 
*/ 
class Product 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string") 
    */ 
    protected $title; 

    /** 
    * @ORM\ManyToMany(targetEntity="Productimage") 
    * @ORM\JoinTable(name="productimage_map", 
    *  joinColumns={@ORM\JoinColumn(name="product_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="image_id", referencedColumnName="id")} 
    *  ) 
    */ 
    protected $images;  

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

製品画像エンティティItemimageテーブルの行アイテムの作成フォーム自体から画像をアップロードし、1000sの画像を含む複数選択フォーム要素からそのアイテムにマップする画像を選択しないシステムを作成するにはどうすればよいですか。

私は説明しようとしているイメージを添付しました。現在は2つのイメージしかありませんが、わずか数百の製品で数千になります。

私は問題が何であるか説明することができたと思います。これは私にとって非常に混乱しています。これで私を助けてください。

また、複数の選択要素がidsを示しています。それらをタイトルにしたいと思います。どのように私もそれを行うことができる任意のアイデア?

ありがとうございます!私はすべての助けに感謝します。

cut out from the rendered form

答えて

1

あなたはあなたのイメージテーブルの代わりに、直接あなたが今使っているブール値のフラグを参照するプロパティを追加する必要があります。

フォームタイプに'property' => 'title'オプションを指定すると、各画像のタイトルを表示するように指定できます。

+0

返信いただきありがとうございます。 mainImageブール値は、商品を識別するために他のページで使用する画像を見つけることです。たとえば:関連商品、ホームページ、カテゴリページなど。複数の画像を1つの製品に追加するには、その複数の選択フォーム要素を通過する必要はありません。私は複数の画像を持つアイテムを追加するのが簡単にしたいです。最初にこの複合施設を建設します。再度、感謝します。 – Aayush

関連する問題