Sylius关于分类表格的新领域没有保存

时间:2017-02-08 06:32:53

标签: taxonomy sylius

我已经向Taxon实体添加了一个新字段,并在管理面板的编辑Taxon页面上的表单上显示了新字段。我的问题是我无法将我的新领域保存到Taxon。我收到一条成功消息,但只有现有的Taxon字段保存,而我的新字段清除。这是我的代码(请注意我对Sylius核心进行了更改而不是扩展,作为概念的证明。一旦我完成了这项工作,我就会正确扩展):

的src / Sylius /捆绑/ TaxonomyBundle /窗体/类型/ TaxonType.php:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('translations', 'sylius_translations', [
            'type' => 'sylius_taxon_translation',
            'label' => 'sylius.form.taxon.name',
        ])
        ->add('my_new_field', 'text', [
            'label' => 'My New Field',
            'required' => false
        ])
        ->addEventSubscriber(new AddCodeFormSubscriber())
        ->addEventSubscriber(new BuildTaxonFormSubscriber($builder->getFormFactory())
    );

}

的src / Sylius /分量/核心/型号/ Taxon.php:

  

protected $ my_new_field;

public function getMyNewField() {
    return $this->my_new_field;
}

public function setMyNewField($myNewField) {
    $this->my_new_field = $myNewField;
}

更新了Taxon模型后,我运行了doctrine:diff,然后运行了迁移,将我的新字段添加到模型中。我可以确认,该字段已添加到数据库中。

该字段现在也会在编辑屏幕上显示在Taxons上。我可以在字段中输入文本并正确发布,但不会保存到分类单元。

我认为我错过了一些控制器逻辑,但似乎taxons经历了标准的Res​​ourceController的updateAction(),我还没有弄清楚如何让这意识到需要保存的新领域。

1 个答案:

答案 0 :(得分:2)

您可能在Taxon.orm.xml文件中遗漏了ORM映射。

记住:

  • 如果您已在Sylius\Component\Taxonomy\Model\Taxon添加了自己的媒体资源,则必须更新src/Sylius/Bundle/TaxonomyBundle/Resources/config/doctrine/model/Taxon.orm.xml
  • 如果您已在Sylius\Component\Core\Model\Taxon上添加了自己的属性,则必须更新src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Taxon.orm.xml

Core 组件扩展Taxon模型也可能更好。