好吧,我有这样的表格:
class CaracteristicaForm extends sfForm {
public function configure() {
$this->setWidgets(array(
'caracteristica' => new sfWidgetFormInputText(array('default'=>'hola mundo'))
));
$this->setValidators(array(
'caracteristica' => new sfValidatorString(
array(
'max_length' => 150,
'required' => true
)
)
));
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
}
}
然后我尝试......
$form = new CaracteristicaForm();
$this->embedForm('caracteristica', $form);
但渲染的inputText根本没有任何值。
我错过了什么?
好的,要重现这个,你需要将这个表单嵌入到另一个表单中(我的是一个Doctrine子表单),所以可能是某些方法改变了这个值吗?
好吧,传递一个数组默认值就可以了:
$form = new CaracteristicaForm(array('caracteristica' => $caracteristica));
答案 0 :(得分:1)
为什么不尝试
$form->setDefault('caracteristica', $caracteristica);
在行动?