我很难覆盖FOS用户包为Symfony2使用的标签。如何覆盖FOS用户包表单标签
我已经覆盖Form类,但没有像“setOption”这样的元素的选项,只有getters。
我可以删除一个元素,然后再添加一个合适的标签,但这看起来像是一种矫枉过正。有没有什么好的方式来覆盖表单元素的选项,或者只是翻译键,也许呢?
我很难覆盖FOS用户包为Symfony2使用的标签。如何覆盖FOS用户包表单标签
我已经覆盖Form类,但没有像“setOption”这样的元素的选项,只有getters。
我可以删除一个元素,然后再添加一个合适的标签,但这看起来像是一种矫枉过正。有没有什么好的方式来覆盖表单元素的选项,或者只是翻译键,也许呢?
您不需要覆盖表单类。
复制/粘贴vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/translations/FOSUserBundle.xx.yml
文件在您app/Resources/translations
目录(具有相同的目录结构和文件名相同),并重新翻译,以方便您使用。
编辑:正如@ mario-johnathan所说,重写的翻译不是捆绑继承的一部分。见http://symfony.com/doc/current/cookbook/bundles/override.html#translations官方文档
前面已经说了,你可以把你的翻译文件:
app/Resources/translations
但是,如果你在你的父包(src/MyAppBundle/Resources/translations
)覆盖它或以任何其它捆绑,确保负载重写的包在你的内核后,你的包:
public function registerBundles()
{
$bundles = [
...
new FOS\UserBundle\FOSUserBundle(),
new MyAppBundle\MyAppBundle(),
...
];
...
}
真棒,谢谢老兄! –
其实我不得不将它复制到应用程序/ Resources/FOSUserBundle/translation,而不是我的捆绑软件目录中,以使其工作, –
是的你是对的! – AlterPHP