Форма сбора Symfony2 не заполняет объединяющий столбец - PullRequest
5 голосов
/ 05 января 2012

У меня есть 2 сущности, Product и Product_Types.

Это соотношение между ними:

manyToOne:
    product:
      targetEntity: Product
      joinColumn:
        name: product_id
        referencedColumnName: id

Когда я добавляю новый продукт, я хочу иметь возможность добавлять типы вэтот продукт с той же формой.

            ->add('productColor', 'collection', array("type" => new ProductColorType(), "allow_add" => true, 'prototype' => true))

Вот как я встраиваю форму (ы).

'data_class' устанавливается для ProductType и ProductTypesType, и когда я добавляюновый продукт с типами, все в порядке, за исключением одной вещи, symfony / doctrine не устанавливает столбец 'product_id', поэтому не будет никакой связи между моим Product и его типами.

Ответы [ 2 ]

5 голосов
/ 02 мая 2012

Вам необходимо связать свои объекты вручную.Ни Symfony, ни Doctrine не делают этого для вас.Это можно сделать, например, в методе add ... ():

public function getProductColors()
{
    return $this->productColors;
}

public function addProductColor(ProductColor $color)
{
    $this->productColors->add($color);
    $color->setProduct($this);
}

Тогда для выполнения этого требования должны быть выполнены три требования:

  • вызапустив Symfony master
  • вы используете Doctrine 2.1.7 / 2.2.3
  • для параметра "by_reference" поля "collection" установлено значение false

Если ты все это сделаешь, у тебя все будет хорошо.

0 голосов
/ 03 февраля 2012

Попытайтесь также сохранить productColors до того, как ваш менеджер сущности сбросит.

...