Symfony 2.2
โซลูชันนี้เลิกใช้งานตั้งแต่ 2.3 และจะถูกลบออกใน 3.0 โปรดดูเอกสารประกอบ
$form->getData();
ให้อาร์เรย์สำหรับพารามิเตอร์ฟอร์ม
จากหนังสือ symfony2หน้า 162 (บทที่ 12: แบบฟอร์ม)
[... ] บางครั้งคุณอาจต้องการใช้แบบฟอร์มที่ไม่มีคลาสและรับอาร์เรย์ของข้อมูลที่ส่งกลับมา นี่เป็นเรื่องง่ายจริงๆ:
public function contactAction(Request $request) {
$defaultData = array('message' => 'Type your message here');
$form = $this->createFormBuilder($defaultData)
->add('name', 'text')
->add('email', 'email')
->add('message', 'textarea')
->getForm();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
$data = $form->getData();
}
}
คุณยังสามารถเข้าถึงค่า POST (ในกรณีนี้คือ "name") โดยตรงผ่านออบเจ็กต์คำขอเช่น:
$this->get('request')->request->get('name');
อย่างไรก็ตามโปรดทราบว่าในกรณีส่วนใหญ่การใช้เมธอด getData () เป็นทางเลือกที่ดีกว่าเนื่องจากจะส่งคืนข้อมูล (โดยปกติจะเป็นอ็อบเจ็กต์) หลังจากที่ถูกแปลงโดยกรอบฟอร์ม
เมื่อคุณต้องการเข้าถึงโทเค็นแบบฟอร์มคุณต้องใช้คำตอบของ Problematic
$postData = $request->request->get('contact');
เนื่องจากgetData()
ลบองค์ประกอบออกจากอาร์เรย์
Symfony 2.3
ตั้งแต่ 2.3 คุณควรใช้handleRequest
แทนbindRequest
:
$form->handleRequest($request);
ดูเอกสารประกอบ