早上好,動態輸入生成和Zend_Form
我有必須支持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救場到我的DB:
//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();
}
無論如何,我有許多語言相關的字段(標題,字幕等),處理表單的代碼可能會變得很難理解,而且我總是必須查詢我的數據庫中的語言表,以便知道生成了哪些輸入。 有沒有更好的方法來做到這一點?像一系列輸入或類似的東西?感謝您的任何輸入:)
謝謝您的回答我來了在之前的'Zend_Translate'中,我會檢查出來。 – Adrenaxus
如果它符合您的需求,請不要忘記接受答案。謝謝。 –
你認爲我應該使用'Zend_Translate'來翻譯我的''的id,而不是像'$ title = new Zend_Form_Element_Text(「title_」。$ language-> getPrefix());''手動設置它們。 – Adrenaxus