首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony表单或普通HTML表单

问Symfony表单或普通HTML表单
EN

Stack Overflow用户
提问于 2010-09-30 19:23:34
回答 2查看 1K关注 0票数 0

我使用Symfony 1.4创建项目,我需要根据来自数据库的问题集类型创建动态表单。我已经在项目的其余部分中使用了Symfony forms,但在这种情况下使用symfony forms似乎很困难,因为我需要动态表单。使用普通的HTML forms..in symfony项目是安全的,还是使用Symfony表单是明智的?所以需要你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-01 01:22:48

您可以使用html表单,但它将绕过symfony的表单验证系统。

您仍然可以通过创建输入小部件并将其添加到当前表单或在操作中添加新表单来构建动态表单。然后,您可以在模板中回显表单,动态生成的字段也将成为表单的一部分。

如果从lib/forms中的MyForm.class.php开始,请确保添加:

代码语言:javascript
复制
$this->validatorSchema->setOption('allow_extra_fields', true);

否则,您将自动获得验证错误。如果您想在操作中将字段添加到表单中,您可以执行以下操作:

代码语言:javascript
复制
$this->form = new MyForm();
$widgetSchema = $this->form->getWidgetSchema();
$widgetSchema['add_field'] = new sfWidgetFormInputText();

当您回显表单时,'add_field‘输入将被添加到表单中。

票数 2
EN

Stack Overflow用户

发布于 2010-10-01 09:02:00

有更多关于你正在做的事情的信息会很有帮助,但这里有一种方法可以让表单在Symfony中动态。这段代码根据问题的“类型”动态地为调查创建小部件和验证器:

代码语言:javascript
复制
class SurveyAnswerForm extends BaseSurveyAnswerForm
{
  public function configure()
  {
    $question = $this->object->Question;

    $method = sprintf('createWidgetAndValidatorFor%sInputType', $question->type);
    $this->$method($question);
    $this->getWidget('value')->setOption('label', $question->question);
    $this->getValidator('value')->setOption('required', $question->required);
  }

  protected function createWidgetAndValidatorForTextFieldInputType(Question $question)
  {
    $this->setWidget('value', new sfWidgetFormInputText());
    $this->setValidator('value', new sfValidatorString());
  }

  protected function createWidgetAndValidatorForTextAreaInputType(Question $question)
  {
    $this->setWidget('value', new wfWidgetFormTextareaAutosize());
    $this->setValidator('value', new sfValidatorString());
  }

  //etc. for as many types as you require
}

注意:虽然这个答案是来自我的一个项目的代码,但它在SymfonyExperts上受到了this answer的严重影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3830079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档