SORU
2 AĞUSTOS 2011, Salı


Erişim Symfony2 talep değerleri POST nesne

TAMAM, bu bir acemi bir soru, ama cevap bulamıyorum. Benim formları POST değeri erişmek için istiyorum Symfony2, bir kumanda. Denetleyicisi var:

public function indexAction()
{ 
    $request = $this->get('request');
    if ($request->getMethod() == 'POST') {
        $form = $this->get('form.factory')->create(new ContactType());
        $form->bindRequest($request);
        if ($form->isValid()) {
            $name_value = $request->request->get('name');

Ne yazık ki $name_value bir şey dönmüyor. Neyi yanlış yapıyorum? Teşekkürler!

CEVAP
27 AĞUSTOS 2012, PAZARTESİ


Symfony 2.2

bu çözüm 2.3 beri önerilmiyor ve 3.0 see documentation kaldırılacak

$form->getData();

size form parametreleri bir dizi

symfony2 book sayfa 162 (Bölüm 12: Formlar)

[...] bazen, sadece bir sınıf olmadan bir form kullanın ve sunulan bir dizi geri almak isteyebilirsiniz veri. Bu aslında çok kolay

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 is an array with "name", "email", and "message" keys
    $data = $form->getData();
  }
  // ... render the form
}

Ayrıca POST değerleri erişebilirsiniz (bu durumda "") ismi gibi doğrudan isteği ile nesne:

$this->get('request')->request->get('name');

Ancak, çoğu durumda getData kullanarak belirlemeleri() yöntemi daha iyi bir seçimdir, bu yana veri döndürür (genellikle bir nesne) şeklinde çerçeve tarafından dönüştürülmüş oldu sonra.

Form token erişmek istediğiniz zaman, Sorunlu cevabı kullanmak zorunda getData() çünkü $postData = $request->request->get('contact'); diziden öğeyi kaldırır


Symfony2.3

2.3 beri bindRequest yerine handleRequest kullanmanız gerekir:

 $form->handleRequest($request);

see documentation

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • funbro1

    funbro1

    11 Aralık 2007
  • kindlechatmail

    kindlechatma

    25 AĞUSTOS 2010