2017-02-08 27 views
0

我向分類單元添加了一個新字段,並在管理面板的編輯Taxon頁面上的窗體上顯示新字段。我的問題是我無法讓我的新領域保存到分類中。我收到一條成功消息,但只有現有的Taxon字段保存,而我的新字段清除。這裏是我的代碼(注意我正在修改Sylius核心,而不是擴展,作爲概念證明,一旦我有這個工作,我會適當擴展):Sylius在分類表格上的新字段不保存

src/Sylius/Bundle/TaxonomyBundle/Form /類型/ 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:

保護$ my_new_field;

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

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

更新類羣模型後,我跑學說:DIFF然後跑到遷移到我的新字段添加到模型。我可以確認,該字段已添加到數據庫中。

該字段現在也在編輯屏幕上顯示Taxons。我可以在字段中輸入文本,並且它可以正確發佈,但是永遠不會保存到分類羣中。

我想我錯過了一些控制器邏輯,但似乎分類標準經歷了標準的Res​​ourceController的updateAction(),我一直無法弄清楚如何使這個知道需要的新字段被保存。

+1

請問您還可以提供您的'Taxon'實體的映射文件嗎? – Zaleslaw

+0

所有我需要的是在正確的方向輕推。非常感謝你的幫助,你的評論爲我所用。如果你發佈了一個答案,說我錯過了我的ORM映射:src/Sylius/Bundle/TaxonomyBundle/Resources/config/doctrine/model/Taxon.orm.xml我會接受它。再次感謝!快速提示,我也是這個模型的屬性:src/Sylius/Component/Taxonomy/Model/Taxon.php。似乎讓他們在src/Sylius/Component/Core/Model/Taxon.php是不夠的。 – carbide20

回答

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

它也可能更好地從核心組件延伸出來Taxon模型。