【发布时间】:2014-02-17 15:59:24
【问题描述】:
我有 2 个实体 Category 和 Criteria,类别和标准之间的关系是 OneToMany(双向关系)。如果没有翻译,我在管理表单(CategoryType 和 CriteriaType)等方面没有任何问题。
Category and Criteria 包含一个“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() 为真,我有这个错误。
但是因为 'translatable_class' => 'Immo\AnnonceBundle\Entity\Category',即使是 Critera 的诽谤也是 Category 的对象。有什么办法处理吗?谢谢
【问题讨论】:
-
你得到什么错误?我在你的问题中找不到。
-
其实我真的不知道怎么用collection和A2lix来管理翻译。当我使用此代码提交表单时,结果不正确,他没有正确处理提交数据。我脑子里有点混乱。
标签: forms symfony collections translation a2lix-translation