sonata_type_collection : установить значение поля по умолчанию из текущего экземпляра объекта

Мне нужна помощь с "sonata_type_collection": есть ли способ определить значение по умолчанию (здесь: экземпляр существующего объекта) для "sonata_type_collection "конкретное поле? Или, может быть, способ дать ему параметры?

Позвольте мне пояснить: вот скриншот моей фактической формы "sonata_type_collection" после рендеринга:

введите здесь описание изображения

Есть ли способ сделать так, чтобы поле "Machine" содержало текущий экземпляр сущности "MachineInfo", которую я редактирую, вместо "No selection" при нажатии (самой последней) кнопки "Добавить" ?

Вот мой текущий «configureFormFields» из «MachineInfoAdmin»:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('name', 'text', array('label' => 'Nom'))
        ->add('description', 'text', array('label' => 'Description'))
        ->add('internalReference', 'text', array('label' => 'Référence interne'))
    ;

    //Already instantiated
    if ($this->id($this->getSubject())) {
        $formMapper
            ->add(
                'machineParts',
                'sonata_type_collection',
                array(
                    'label'     => "Pièces",
                ),
                array(
                    'edit' => 'inline',
                    'inline' => 'table',
                    'sortable'  => 'position',
                )
            )
        ;
   }
}

Я действительно застрял в этом, я надеюсь, что спаситель может дать мне свои знания, чтобы помочь мне м (_ _) м


person Sir McPotato    schedule 08.10.2015    source источник
comment
Вы должны опубликовать решение самостоятельно, так как вы его нашли.   -  person devilcius    schedule 10.10.2015
comment
Я думаю, так лучше, да, спасибо ^^   -  person Sir McPotato    schedule 10.10.2015


Ответы (1)


Я нашел решение, и оно было довольно простым, мне стыдно =__=" Я забыл установить ссылку на MachineInfo во вновь созданном экземпляре MachinePart

public function addMachinePart(MachinePartsInfo $machineParts) {
    $machineParts->setMachineInfo($this); //Missed this line
    $this->machineParts[] = $machineParts;

    return $this;
}

Я надеюсь, что это может помочь кому-то в будущем :)

person Sir McPotato    schedule 10.10.2015