2017-02-08 12 views
0

Taxonエンティティに新しいフィールドを追加し、管理パネルのEdit Taxonページのフォームに新しいフィールドを表示させました。私の問題は、タクソンに保存するために私の新しいフィールドを手に入れることができないということです。私は成功メッセージを受け取りますが、既存のタクソンフィールドだけが保存され、新しいフィールドはクリアされます。Sylius Taxonフォームの新しいフィールドが保存されない

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; 
} 

分類群モデルを更新した後、私は教義走っ:差分をして、モデルに私の新しいフィールドを追加するには、マイグレーションを実行しました。私は、フィールドがデータベースに追加されたことを確認することができます。

このフィールドは、今編集画面でTaxonに表示されます。私はフィールドにテキストを入力することができ、正しく投稿しますが、これまでに分類群に保存することはありません。

コントローラのロジックが不足していると思うでしょうが、標準のResourceControllerのupdateAction()を経由しているようですが、これをどのように新しいフィールドに認識させるかを理解できませんでした救われる。

+1

'Taxon'エンティティのマッピングファイルも提供してください。 – Zaleslaw

+0

私が必要としていたのは正しい方向への動きでした。あなたの助けをありがとう、ありがとう、あなたのコメントは私のためにすべての仕事を得た。 src/Sylius/Bundle/TaxonomyBundle/Resources/config/doctrine/model/Taxon.orm.xmlで私のORMマッピングが不足しているという回答を投稿した場合、私はそれを受け入れます。再度、感謝します!クイックメモ、私はこのモデルのプロパティでもありました:src/Sylius/Component/Taxonomy/Model/Taxon.php。それはsrc/Sylius/Component/Core/Model/Taxon.phpでそれらを持つように思えました。 – carbide20

答えて

2

Taxon.orm.xmlファイルにORMマッピングが存在しない可能性があります。

は覚えておいてください:

  • をあなたがsrc/Sylius/Bundle/TaxonomyBundle/Resources/config/doctrine/model/Taxon.orm.xmlを更新する必要がSylius\Component\Taxonomy\Model\Taxonにあなたの特性を追加した場合。
  • あなたがSylius\Component\Core\Model\Taxonにあなたの特性を追加した場合は、それは、コアコンポーネントからTaxonモデルを拡張するために、おそらくも良いでしょうsrc/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Taxon.orm.xml

を更新する必要があります。

関連する問題