首页 文章

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

提问于
浏览
0

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

src/Sylius/Bundle/TaxonomyBundle/Form/Type/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/Component/Core/Model/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通过标准的ResourceController的updateAction(),我无法弄清楚如何让这意识到需要保存的新字段 .

1 回答

  • 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 模型也可能更好 .

相关问题