【问题标题】:Read the values of form in controller读取控制器中表单的值
【发布时间】:2014-11-06 16:38:34
【问题描述】:

如何检索刚刚验证过的表单的值?但我想操纵控制器中的值。我有这段代码来检索信息,但没有在控制器 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' ) );
    }

谢谢!

【问题讨论】:

  • “但未在控制器 php 中处理”是什么意思?你能告诉我们你是如何创建表单和处理请求的吗?
  • 1.你已经用$recuperacion = $form->getData (); 得到了它们,那有什么问题呢? 2.$request->request->get($form->getName())没有帮助?
  • 你能贴出getData()的代码吗? ?
  • 如果您在调用$form->isValid() 之前执行了$form->handleRequest($request),您甚至不需要$form->getData() 函数,因为表单处理程序会将表单值保存到您在@987654327 中定义的对象中@ 自动地。如果您想获取这些值,只需使用您创建的实体提供的辅助函数即可。

标签: php symfony web doctrine-orm


【解决方案1】:

你问的正是你已经得到了什么。

if ($form->isValid ()) { 在您的表单提交且有效时起作用。

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

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

$name = $recuperacion['name'];

你还需要什么? :)

如果您想知道将值从表单插入到数据库,请使用刚刚从表单获取的数据并使用 setter 进行设置:

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

【讨论】:

    【解决方案2】:

    您可以使用$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);
        })
    ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2015-02-11
      相关资源
      最近更新 更多