Intereting Posts
Mysqli fetch_assoc vs fetch_array Laravel: как получить среднее значение для вложенных отношений hasMany (hasManyThrough) Как получить доступ к свойству / значению массива, который был преобразован в объект? Просто: как заменить «все между» на php? Laravel hasMany Many to Many to One Eloquent Soap answert string – преобразование в атрибут Публикация на страницу Facebook из приложения Facebook без входа в facebook Как я могу взорвать массив, пропуская пустые элементы массива? Многомерный массив PHP x HasOffers Как получить определенное значение параметра из заданного значения php php-скрипт анализирует контент из RTE (tt_news), но внутренние ссылки не отображаются как говорящий URL-адрес phpdoc: Каков правильный способ документирования константы Массив после функции array_unique возвращается как объект в ответе JSON Прерывистая ошибка абстрактного класса PHP «Внутренняя ошибка сервера 500» при использовании файла .htaccess

Редактирование формы для отношения n: m с дополнительными атрибутами между двумя объектами

У меня есть это сопоставление между двумя объектами:

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

Когда я редактирую заказ, я должен иметь возможность добавлять / удалять продукты в этом порядке, но я не знаю, как это сделать. Я знал, что должен использовать коллекцию форм, но как? Я имею в виду, что сборник должен вставляться следующим образом:

 $builder->add('product', 'collection', array( 'type' => new OrderHasProductType(), 'allow_add' => true, 'allow_delete' => true )); 

Когда мне нужно создать новую форму OrderHasProductType и я думаю, что до сих пор понимаю, но мой вопрос заключается в том, что происходит с идентификатором заказа? Каков надлежащий способ обработки встроенной формы отношения n: m с дополнительными параметрами?

Может ли кто-нибудь дать мне пример кода, чтобы заказать мои идеи?

Дополнительные ресурсы

  • Полный комплект заказов
  • Конечный источник продукта
  • Форма заказа Тип Полный источник
  • Тип заказа Форма заказа Полный источник