嘿,我在我的網站上用兩種不同的語言保存每一頁。我想用我正在用symfony2開發的管理區域管理我的頁面。用Symfony2在一個控制器中處理兩種形式
以下控制器代碼可以在包含來自數據庫的正確數據的同一頁上顯示兩個表單。一種形式以管理爲EN的DE語言和另:
查看:
<form action="{{ path('admin_about') }}" method="post" {{ form_enctype(formEN) }}>
{{ form_widget(formEN) }}
<button type="submit" class="btn btn btn-warning" naem="EN">Save</button>
</form>
<form action="{{ path('admin_about') }}" method="post" {{ form_enctype(formDE) }}>
{{ form_widget(formDE) }}
<button type="submit" class="btn btn btn-warning" name="DE">Save</button>
</form>
控制器: 公共職能aboutAction(請求$要求) {
$pageEN = $this->getDoctrine()
->getRepository('MySitePublicBundle:Page')
->findOneBy(array('idName' => 'about', 'lang' => 'EN'));
$pageDE = $this->getDoctrine()
->getRepository('MySitePublicBundle:Page')
->findOneBy(array('idName' => 'about', 'lang' => 'DE'));
if (!$pageDE) {
throw $this->createNotFoundException('About page (DE) not found.');
}
if (!$pageEN) {
throw $this->createNotFoundException('About page (EN) not found.');
}
$formDE = $this->createFormBuilder($pageDE)
->add('title', 'text')
->add('content', 'text')
->getForm();
$formEN = $this->createFormBuilder($pageEN)
->add('title', 'text')
->add('content', 'text')
->getForm();
//Save Form here
return $this->render('MySitePublicBundle:Admin:about.html.twig', array(
'aboutPageDE' => $pageDE, 'aboutPageEN' => $pageEN, 'formDE' => $formDE->createView(), 'formEN' => $formEN->createView(),
));
}
我的問題是:如何保存已從一個控制器中使用的表單?
您可能希望查看[form classes](http://symfony.com/doc/current/book/forms.html#creating-form-classes)並在那裏處理翻譯。這樣,你只有一種形式擔心持續(並且不必爲每個翻譯複製「FormBuilder」代碼。 – Nick 2012-07-11 16:14:19
我不明白這是如何解決我的問題的?!或者它只是爲了不要重複自己?:-) – Sven 2012-07-11 16:43:25
哦,你在尋找如何將它們保存在一般?我將添加一個答案... – Nick 2012-07-11 22:03:08