【发布时间】:2011-10-03 22:41:56
【问题描述】:
我的应用中有 Entity,它有 2 个可翻译字段,使用 Doctrine Translatable Extension:
class Page implements Translatable
{
/......
/**
* @var string $name
* @Gedmo\Translatable
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var text $content
* @Gedmo\Translatable
* @ORM\Column(name="content", type="text")
*/
private $content;
/........
}
我使用一张表进行多个实体的翻译。 现在我想使用 one 表单来获取这些属性的原始值和翻译(到 1 种语言)值,所以它应该有 4 个字段。
我定义了从 AbstractType 派生的新表单,并尝试使用 FormBuilder 添加这两个字段,但它说它们对应的实体不包含这些字段。我尝试将这些字段添加到实体中,并为它们声明 getter,但我知道获取实体翻译的唯一方法是使用专用实体管理器,而 AFAIK 提供实体管理器访问实体并不是一个好习惯。
有没有办法使用表单来处理这样的事情?
【问题讨论】:
-
它不知道它是否符合您的需求,但这个捆绑包对我来说非常有用github.com/a2lix/TranslationFormBundle
-
你可以使用 TranslationExtraBundle:github.com/ideea/TranslationExtraBundle 和开源项目,使用这个包时:github.com/ZhukV/Nadiyka
-
请从 FormType 发布您的代码。
标签: doctrine-orm symfony