안녕하세요. 내 웹 사이트에 두 개의 다른 언어로 모든 페이지를 저장하고 있습니다. 지금 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(),
));
}
내 질문은 : 하나의 컨트롤러에서 사용 된 양식을 저장하는 방법은 무엇입니까? 컨트롤러에서
[양식 클래스] (http://symfony.com/doc/current/book/forms.html#creating-form-classes)에서 번역을 처리 할 수 있습니다. 그렇게하면 영속성에 대해 걱정할 하나의 형식 만있을 수 있습니다. 각 번역에 대해 FormBuilder 코드를 복제 할 필요가 없습니다. – Nick
이것이 내 문제를 어떻게 해결하는지 보지 못합니까? 아니면 그냥 술을위한 것입니까? 자신을 반복하지 마십시오 :-) – Sven
오, 당신은 그들을 일반적으로 저장하는 방법을 찾고 있습니까? 나는 대답을 추가 할 것이다 ... – Nick