Php symfony1.4,基于模型的表单,我不需要一些小部件
在Symfony 1.4 Im中,使用基于模型的表单。但我必须验证一些小部件/字段。我找不到Php symfony1.4,基于模型的表单,我不需要一些小部件,php,symfony-1.4,Php,Symfony 1.4,在Symfony 1.4 Im中,使用基于模型的表单。但我必须验证一些小部件/字段。我找不到removeWidget()或类似的东西,如何删除一些不需要检查/验证的字段 编辑:基本形式 $this->setWidgets(array( 'f1' => new sfWidgetFormInputHidden(), 'f2' => new sfWidgetFormInputText(), 'f3' => sfWidgetFormInput
removeWidget()
或类似的东西,如何删除一些不需要检查/验证的字段
编辑:基本形式
$this->setWidgets(array(
'f1' => new sfWidgetFormInputHidden(),
'f2' => new sfWidgetFormInputText(),
'f3' => sfWidgetFormInputText()
));
$this->setValidators(array(
'f1' => new sfValidatorChoice(array('choices' => array($this->getObject()->get('ID')), 'empty_value' => $this->getObject()->get('ID'), 'required' => false)),
'f2' => new sfValidatorInteger(),
'f3' => new sfValidatorInteger()
));
$this->widgetSchema->setNameFormat('task[%s]');
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
$this->setupInheritance();
parent::setup();
现在我必须编辑
configure()
方法,这样验证器就不会检查'f1'字段。首先,您不需要编辑BaseForm类
您可以:
$this->validatorSchema['widget_name'] = new sfValidatorPass();
或者,例如,每个小部件都有选项“必需”
字符串小部件:
$this->validatorSchema['widget_name'] = new sfValidatorString(array('required' => false));
您可以简单地将小部件从表单中取消设置
class XYZForm extends BaseXYZForm
{
public function configure()
{
//....
unset($this['unwanted_widget']);
}
}
我们肯定需要查看表单类和呈现表单的模板。不是全部。。只是相关的部分。向我们展示整个代码:动作、自定义表单等。。。不是基本的。好吧,在模板中,表单是定制呈现的:在我创建的动作中:$this->form=newtaskform();和bind:$this->form->bind($request->getParameter('task');那么您的
任务表单中有什么内容?