访问我的Symfony executeAction后端中的表单值

时间:2012-03-02 19:18:23

标签: forms symfony1 symfony-1.4 symfony-forms

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

我遇到的大多数Symfony文档并不一定解释如何做到这一点。我认为它会产生以下影响: $ request-> getParameter('radio_choices_id selected value')。

感谢所有读过这篇文章的人,并感谢那些回复此事的人:)

帕里贾特

1 个答案:

答案 0 :(得分: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());