2 つのエンティティCategoryとCriteriaがあり、カテゴリと基準の間の関係は OneToMany (双方向関係) です。翻訳がなければ、フォーム(CategoryType と CriteriaType)などを管理するのに問題はありません。
カテゴリと基準には「libelle」属性が含まれており、これらの属性を英語と別の言語に翻訳したいので、次のようなものがあります。
// Category entity :
/**
* @ORM\Column(name="libelle", type="string", length=255)
* @Gedmo\Translatable
*/
private $libelle; // can't be blank
// other attributes
// --------
// Criteria entity :
/**
* @ORM\Column(name="libelle", type="string", length=255)
* @Gedmo\Translatable
*/
private $libelle; // can't be blank
しかし、ここでは、GedmoTranslationBundle と A2lix を使用します。
これが私のコードです:
$builder
->add('translations', 'a2lix_translations_gedmo', array(
'translatable_class' => 'Immo\AnnonceBundle\Entity\Category',
'locales' => array('fr', 'en'),
'required' => false,
'fields' => array(
'libelle' => array(
'field_type' => 'text',
'locale_options' => array(
'en' => array(
'label' => 'Libellé du critère (en) :',
'attr' => array('placeholder' => 'Example : Convenience, proximity, etc.')
),
'fr' => array(
'label' => 'Libellé du critère (fr) :',
'attr' => array('placeholder' => 'Exemple : A proximité, commodités, etc.')
)
)
)
'criterias' => array(
'field_type' => 'collection',
'label' => ' ',
'type' => new CriteriaType(),
'allow_add' => true,
'allow_delete' => true
)
)
)
)
基準タイプ:
$builder->add('libelle', 'text', array('libelle' => 'Libellé :'))
上記の私の例は機能せず、$form->isValid() が false を返すように見えるエラー メッセージが表示されず、その理由がわかりません。
これを正しく管理する方法がわかりません。これについて説明していただけますか?ありがとう
編集:最初のエラーはトークンの欠落が原因で、現在 $form->isValid() が true であり、このエラーが発生しています。
しかし、'translatable_class' => 'Immo\AnnonceBundle\Entity\Category' のため、Critera のリベルでさえ、Category のオブジェクトです。それを処理するアイデアはありますか?ありがとう