读取控制器中表单的值

时间:2014-11-06 16:38:35

标签: php symfony web doctrine-orm

如何检索刚验证过的表单的值?但我想操纵控制器中的值。我有这个代码来检索信息,但没有在控制器php中处理。

        if ($form->isValid ()) {

        $recuperacion = $form->getData (); 
        $em = $this->getDoctrine ()->getManager ();
        $em->persist ( $recuperacion ); // Inserta la información en la base de datos
        $em->flush ();

       /* I want get the values here... */
       /* _____________________________ */

        $this->InsertarAdminPV ( $user );

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

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用$form->getData()获取数据。但是,您应该使用其中一个表单事件:http://symfony.com/doc/current/components/form/form_events.html

对转换器执行此操作

在这种情况下,您应该收听FormEvents::POST_SUBMIT事件:

use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;

$formFactory->createBuilder()
    // ...
    ->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
        $modelData = $event->getData();

        // ... edit model data

        $event->setData($modelData);
    })
;

答案 1 :(得分:0)

你确切地问过你已经得到了什么。

if ($form->isValid ()) {在您的表单提交并生效时有效。

现在,您可以获得所需的数据:$recuperacion = $form->getData ();

现在,您可以从已有的数组中获取表单输入的值:

$name = $recuperacion['name'];

你还需要什么? :)

如果您想知道INSERT值从表单到数据库,请使用您从表单中获取的数据并使用setter设置它:

$entity = new Entity();
$entity->setName($name);
$em->persist($entity);
$em->flush();