表单中的LanguageType

时间:2017-01-07 15:05:22

标签: symfony

首先,大家好,感谢您的关注。 我正在用symfony做一个应用程序。我正在使用LanguageType在我的表单中生成一个包含大量语言的字段,用户必须选择其中一个。 LanguageType的问题在于我只在我的数据库中存储语言标识符。例如,如果我选择英语,它将存储在我的数据库“en”中,我需要保存全名。有没有办法做到这一点?

再次感谢您的关注。

2 个答案:

答案 0 :(得分:0)

我假设您可以使用Intl包,如果是这样,它们的存储方式不是问题。但是你总是可以用它来转换GB的国家代码 - >英国

所以你要做的是让所有国家将它们存储在一个变量中,然后使用下面的代码将其转换为全名。使用它将代码转换为全名,然后告诉表单使用这些作为选择。

Intl::getRegionBundle()->getCountryName($variable);

答案 1 :(得分:0)

您可以在FormType类中使用ChoiceType字段,并让它加载您需要的所有语言。在您的选择中检查here到自定义键/值对。

但总的来说,我觉得这是一个坏主意,因为你会存储一个语言名称的翻译。如果您存储语言代码,则可以在检索时随意执行任何操作

Intl::getLanguageBundle()->getLanguageName('en')