sonata_type_collection :从当前实体实例设置默认字段值

Posted

技术标签:

【中文标题】sonata_type_collection :从当前实体实例设置默认字段值【英文标题】:sonata_type_collection : set default field value from current entity instance 【发布时间】:2016-01-06 05:34:32 【问题描述】:

我需要有关“sonata_type_collection”的帮助:有没有办法为“sonata_type_collection(此处:现有实体的实例) /em>" 特定字段? 或者也许是一种给他参数的方法?

让我澄清一下: 这是我的实际“sonata_type_collection”表单的屏幕截图:

有什么方法可以让“Machine”字段保存我正在编辑的“MachineInfo”实体的当前实例,而不是“无选择” ” 当您单击(最后一个)“添加”按钮时的文本?

这是我当前来自“MachineInfoAdmin”的“configureFormFields”:

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',
                )
            )
        ;
   

我真的陷入了那个,我希望救世主可以提供他的知识来帮助我m(_ _)m

【问题讨论】:

你应该自己发布解决方案,因为你找到了它。 我觉得这样更好,谢谢^^" 【参考方案1】:

我找到了解决方案,而且很简单,我很惭愧 =__=" 我忘记在新实例化的 MachinePart

中设置对 MachineInfo 的引用
public function addMachinePart(MachinePartsInfo $machineParts) 
    $machineParts->setMachineInfo($this); //Missed this line
    $this->machineParts[] = $machineParts;

    return $this;

我希望这可以帮助将来的人:)

【讨论】:

以上是关于sonata_type_collection :从当前实体实例设置默认字段值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sonata Admin 中正确配置“sonata_type_collection”字段

sonata_type_collection btn_add 不工作

Symfony 3 / sonata_type_collection 更改查询每个添加行

Sonata Admin Bundle - 表单类型:sonata_type_collection - 自定义模板?

sonata_type_collection 设置页面加载时的默认行数

奏鸣曲 sonata_type_collection 展示表