我整天都在尝试根据一个数字对同一个表单进行多次插入,但我无法用它去任何地方。我希望这里有人能帮助我...
我在 1.4 学说上使用管理生成器。我有一个只有两个字段的表单。我想做的是,根据插入的数字,表格将重复 x 次。
在生成器文件中,我添加了一个部分,它在表单的开头放置了一个文本字段,默认值为 1。如果我选择 2,下面的表单将被复制两次..
这是我对我的表格所做的.. 在行动
class prizesActions extends autoPrizesActions
{ 公共函数 executeNew(sfWebRequest $request) {
$this->form = $this->configuration->getForm(null, array('n' => 5));
$this->prizes = $this->form->getObject();
} }
在 PrizesForm 中,我写了以下内容
class PrizesForm extends BasePrizesForm
{ public function configure() { $array = $this->getOptions(); for ($i = 0; $i < $array['n']; $i++) {
$this->setWidgets(array(
'id' => new sfWidgetFormInputHidden(),
'prize_no' => new sfWidgetFormInputText(),
'prize' => new sfWidgetFormInputText(),
'created_at' => new sfWidgetFormDateTime(),
'updated_at' => new sfWidgetFormDateTime(),
));
$this->setValidators(array(
'id' => new sfValidatorDoctrineChoice(array('model' => $this->getModelName(), 'column' => 'id', 'required' => false)),
'prize_no' => new sfValidatorInteger(array('required' => false)),
'prize' => new sfValidatorString(array('max_length' => 200, 'required' => false)),
'created_at' => new sfValidatorDateTime(),
'updated_at' => new sfValidatorDateTime(),
));
$this->widgetSchema->setNameFormat('prizes['.$i.'][%s]');
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
}
unset( $this['updated_at'],
$this['created_at']
);
} }
我认为循环正在工作,但它在每个条目上都写了小部件,我找不到其他方法来代替。有任何想法吗?
谢谢,