0
4

1 回答 1

1

我可能错了,但我认为您应该idmaquina在表单configure()函数中添加小部件和字段验证器。

$this->widgetSchema['idmaquina'] = new sfWidgetFormInputHidden();
$this->validatorSchema['idmaquina'] = new sfValidatorChoice(array('choices' => array($this->getObject()->get('idmaquina')), 'empty_value' => $this->getObject()->get('idmaquina'), 'required' => false));

由于您没有在重载表单中创建它,因此它永远不会将其值保存到表单中,并且当您发送表单时,idmaquina它将为空。您可以使用表单字段 idmaquina 的简单 var_dump 轻松调试它。

更改表单后,转到命令行并在 symfony 项目文件夹中,使用以下命令清除 symfony 缓存:symfony cc

请添加以下代码并检查其值:

doUpdateObject

doUpdateObject($values){
    echo "values: "; var_dump($values); echo "<br />";
    ///...
}

processForm中:

protected function processForm(sfWebRequest $request, sfForm $form) {
    $originalForm = $request->getParameter($form->getName()), 
    $request->getFiles($form->getName());
    echo "originalForm: "; var_dump($originalForm); echo "<br />";
    echo "idmaquina: " . $originalForm['idmaquina']->getValue(); echo "<br />";
    //...
}

您需要确保在表单中设置和发送 idmaquina 的值。

于 2013-06-25T10:25:03.807 回答