【问题标题】:Access Form values in my Symfony executeAction backend在我的 Symfony executeAction 后端访问表单值
【发布时间】:2012-03-21 07:08:10
【问题描述】:

所以我的一个页面包含一个测验表单,其中包含多个类型的多项选择问题,这些选项被指定为单选按钮。我一直在扫描 Symfony 文档以了解如何访问用户输入的表单字段值。问题是,这不是基于教义或推进的形式,我也不需要将值存储在数据库中,因此执行 $form->save() 对我来说毫无意义。但是一旦用户点击提交,我确实需要在我的后端访问我的表单的特定值。

我遇到的大多数 Symfony 文档并不一定能解释如何做到这一点。我认为这会产生以下效果: $request->getParameter('radio_choices_id 选择值')。

感谢所有阅读本文的人,并为回复它的人干杯:)

帕里贾特

【问题讨论】:

    标签: forms symfony1 symfony-1.4 symfony-forms


    【解决方案1】:

    嗯,如果我理解你的问题就很简单了) 对于小部件:

    $this->widgetSchema['name'] = new sfWidgetFormChoice(array('choices' => array('ch_1', 'ch_2')));
    

    好的,在行动中:

    $this->form = new FaqContactForm();
    
            if ($request->isMethod('post')) {
                $this->form->bind($request->getParameter($this->form->getName()));
    
                if ($this->form->isValid()) {
    
                    $your_val=$this->form->getValue('name');
    
                     //or
    
                     $your_val=$this->form['name']->getValue());
                 }
             }
    

    在后端protected function processForm(sfWebRequest $request, sfForm $form) 你有

    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
        if ($form->isValid())
        {
          $notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.';
    
          try {
            $product = $form->save();
          } catch (Doctrine_Validator_Exception $e) {
    
            $errorStack = $form->getObject()->getErrorStack();
    
            $message = get_class($form->getObject()) . ' has ' . count($errorStack) . " field" . (count($errorStack) > 1 ?  's' : null) . " with validation errors: ";
            foreach ($errorStack as $field => $errors) {
                $message .= "$field (" . implode(", ", $errors) . "), ";
            }
            $message = trim($message, ', ');
    
            $this->getUser()->setFlash('error', $message);
            return sfView::SUCCESS;
          }
    

    $product = $form->save();之前试试

    $your_val=$form->getValue('name');
    //or
    $your_val=$form['name']->getValue());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 2016-12-05
      相关资源
      最近更新 更多