私は3つのエンティティを持っています:
1.機能
2.値
3.製品
機能については触れずに、製品の価値を獲得しています。機能に応じて価値を上げようとしていますが、できません。どうすればいいのかわかりません。
特徴:
/**
* @ORM\Table(name="feature")
* @ORM\Entity
*/
class Feature
{
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name", type="string", length=50)
*/
protected $name;
/**
* @ORM\OneToMany(targetEntity="Feature", mappedBy="Feature")
**/
protected $value;
/**
* Constructor
*/
public function __construct()
{
$this->value = new \Doctrine\Common\Collections\ArrayCollection();
}
public function __toString()
{
return $this->getName();
}
}
価値:
/**
* @ORM\Table(name="value")
* @ORM\Entity
*/
class Value
{
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name", type="string", length=50)
*/
protected $value;
/**
* @ORM\ManyToOne(targetEntity="Feature", inversedBy="value")
**/
protected $feature;
/**
* @ORM\ManyToMany(targetEntity="Product", mappedBy="value")
**/
private $product;
public function __construct()
{
$this->feature = new \Doctrine\Common\Collections\ArrayCollection();
}
public function __toString()
{
return $this->getValue();
}
}
製品:
/**
* @ORM\Entity
* @ORM\Table()
* @ORM\HasLifecycleCallbacks
*/
class Product
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Gedmo\Translatable
* @ORM\Column(length=64)
*/
private $title;
/**
* @Gedmo\Slug(fields={"title"})
* @ORM\Column(length=64, unique=true)
*/
private $slug;
/**
* @ORM\Column(type="integer")
*/
protected $quantity;
/**
* @ORM\Column(type="boolean")
*/
protected $active;
/**
* @ORM\Column(type="datetime")
*/
protected $updated;
/**
* @ORM\Column(type="datetime")
*/
protected $created;
/**
* @ORM\ManyToMany(targetEntity="Value", inversedBy="product")
* @ORM\JoinTable(name="product_value")
**/
protected $value;
public function __construct()
{
$this->active = true;
$this->updated = new \DateTime();
$this->created = new \DateTime();
$this->value = new ArrayCollection();
}
public function __toString()
{
return $this->getTitle();
}
}
英語が苦手なので、これ以上説明しません。
例私が欲しいもの:
「サイズや色など、商品ごとに赤、緑、小、中などの値で商品の特徴を選択したい。」