У меня есть это отображение betwenn два сущностей:Редактирование формы для отношений п: м с дополнительными атрибутами между двумя сущностями
class Orders {
// Other attributes
/**
* @ORM\OneToMany(targetEntity="OrderHasProduct", mappedBy="order")
*/
protected $orderProducts;
// Other set/get methods
public function getOrderProducts()
{
return $this->orderProducts;
}
}
class Product {
// Other attributes
/**
* @ORM\OneToMany(targetEntity="\Tanane\FrontendBundle\Entity\OrderHasProduct", mappedBy="product")
*/
protected $orderProducts;
// Other set/get methods
public function getOrderProducts()
{
return $this->orderProducts;
}
}
И, конечно же, так как многие заказы могут иметь много продуктов, но также есть дополнительный атрибут эти другой объект необходимо:
class OrderHasProduct
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="\Tanane\FrontendBundle\Entity\Orders")
* @ORM\JoinColumn(name="general_orders_id", referencedColumnName="id")
*/
protected $order;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="\Tanane\ProductBundle\Entity\Product")
* @ORM\JoinColumn(name="product_id", referencedColumnName="id")
*/
protected $product;
/**
* @ORM\Column(type="integer", nullable=false)
*/
protected $amount;
public function setOrder(\Tanane\FrontendBundle\Entity\Orders $order)
{
$this->order = $order;
}
public function getOrder()
{
return $this->order;
}
public function setProduct(\Tanane\ProductBundle\Entity\Product $product)
{
$this->product = $product;
}
public function getProduct()
{
return $this->product;
}
public function setAmount($amount)
{
$this->amount = $amount;
}
public function getAmount()
{
return $this->amount;
}
}
Когда я изменить заказ, я должен иметь возможность добавлять/удалять продукты на таком порядке, но я не знаю, как этого добиться. Я знал, что должен использовать form collection, но как? Я имею в виду сборник следует вставлять следующим образом:
$builder->add('product', 'collection', array(
'type' => new OrderHasProductType(),
'allow_add' => true,
'allow_delete' => true
));
Когда я должен создать новую OrderHasProductType
формы, и я думаю, что я не понимаю, до этого момента, но мой вопрос теперь, что происходит с ID заказом? Каков надлежащий способ обработки встроенной формы отношения n: m с дополнительными параметрами?
Может ли кто-нибудь дать мне пример кода, чтобы заказать мои идеи?
Дополнительные ресурсы
- Orders Entity Complete Source
- Product Entity Complete Source
- Orders Form Type Complete Source
- OrderHasProduct Form Type Complete Source
Вместо «продукта» у вас будет «заказ продукции». OrderHasProductType, в свою очередь, добавил бы («продукт», новый ProductType(). Это может сбивать с толку. – Cerad
@Cerad вы можете оставить какой-то пример кода? – ReynierPM