早上好,
我有一个必须支持n
语言的多语言后端应用程序。语言存储在数据库中,可以随时添加。现在对于我的后端功能,我需要<input>
根据存储在我的数据库中的语言动态生成字段,例如:
- 德语:
<input type="text" id="title_de">
- 英语
<input type="text" id="title_en">
- 意大利语
<input type="text" id="title_it">
- ...
我目前使用以下方法添加它们Zend_Form
:
foreach($languages as $language){
$title = new Zend_Form_Element_Text("title_" . $language->getPrefix());
$title->setLabel("Title " . $language->getPrefix())
->setRequired(true)
$this->addElements(array($title));
}
这就是我使用 Doctrine 将字段保存到我的数据库的方式:
//get language-dependent title and write to DB
foreach($languages as $language){
$title->setLanguage($language);
$title->setContent($form->getValue("title_" . $language->getPrefix()));
$touristArea->addTitle($title);
//persist and flush
$em->persist($touristArea);
$em->flush();
}
无论如何,由于我有许多与语言相关的字段(标题、标题等),处理表单的代码会变得非常讨厌,我总是必须查询数据库中的语言表才能知道生成了哪些输入。有一个更好的方法吗?就像输入数组或类似的东西?感谢您的任何意见:)