2014-05-27 3 views
-2

Я хотел бы получить значение textarea с именем «сообщение», чтобы отобразить его в FlashBag «только для теста», но он будет отправлен по электронной почте позже. Это форма и действие контроллера:Получить значение textarea

Форма

<form action="{{ path('immobilier_delete', {'id': immobilier.id }) }}" method="post"> 

<a href="{{ path('immobilier') }}" class="btn btn-primary btn-md" role="button">Annuler</a> 
<input type="submit" value="Supprimer" class="btn btn-danger" /> 
<textarea name="message"></textarea>  

{{ form_rest(form) }} 
</form> 

контроллер Действие

public function deleteAction(Immobilier $immobilier) 
{  
    $form = $this->createFormBuilder()->getForm(); 

    $request = $this->getRequest();  

    if ($request->getMethod() == 'POST') 
    { 
     $form->bind($request); 

     if ($form->isValid()) 
      { 
       $em = $this->getDoctrine()->getManager() ; 

       // here i'd like to make the textarea in $message 

       $em->remove($immobilier) ; 
       $em->flush() ; 


       $this->get('session')->getFlashBag()->add('info', 'message'); 

       return $this->redirect($this->generateUrl('immobilier')); 
      } 
    } 

    return $this->render('AgenceImmobBundle:Immobilier:delete.html.twig', 
    array(
     'immobilier' => $immobilier, 
     'form' => $form->createView() 
    )); 
} 

ответ

1

Все, что вам действительно нужно сделать, чтобы получить доступ значение, которое было размещено является использование $ _POST ['key']

В этом случае ваше сообщение находится в: $ _POST ['message «].

+0

ах Тхак вы, так it'is извлекаемой simle – hous

+0

Использование $ _POST любопытное работает «вокруг» рамки, хотя ... это обеспечивает _специфические методы/способы доступа к данным формы. – CBroe

1

Вы используете пустую форму, удалить форму и получить доступ к переменной POST непосредственно

$request->request->get('message'); 

или добавить поле сообщения в форме.

Форма

<form action="{{ path('immobilier_delete', {'id': immobilier.id }) }}" method="post"> 
<a href="{{ path('immobilier') }}" class="btn btn-primary btn-md" role="button">Annuler</a> 
<input type="submit" value="Supprimer" class="btn btn-danger" /> 
{{ form_widget(form) }} 
</form> 

Контроллер

public function deleteAction(Immobilier $immobilier) 
{  
    $form = $this->createFormBuilder() 
     ->add('message', 'textarea') 
     ->getForm(); 

    $request = $this->getRequest();  

    if ($request->getMethod() == 'POST') 
    { 
     $form->bind($request); 

     if ($form->isValid()) 
      { 
       $em = $this->getDoctrine()->getManager() ; 

       $em->remove($immobilier) ; 
       $em->flush() ; 

       $data = $form->getData(); 
       $this->get('session')->getFlashBag()->add('info', $data['message']); 

       return $this->redirect($this->generateUrl('immobilier')); 
      } 
    } 

    return $this->render('AgenceImmobBundle:Immobilier:delete.html.twig', 
    array(
     'immobilier' => $immobilier, 
     'form' => $form->createView() 
    )); 
} 
+0

да, большое спасибо :))))) – hous

Смежные вопросы