我正在构建一些在某些字段中具有默认值的表单:
$builder->add('field', 'text', array('data' => 'Default value');
然后在Twig中渲染此表单字段,如:
{{ form_widget(form.field) }}
它工作正常,但我不想要'默认值'设置在HTML中呈现的输入标记中,因为我只希望此默认值设置为内部,而最终用户并不知道此值。 Symfony2中是否有任何内置方法来处理它,或者我必须制作一些自定义代码?
答案 0 :(得分:2)
您可以修改您的实体以执行此操作:
class MyEntity{
const DEFAULT_FOO = "Default value";
// ...
private $foo;
// ...
public function setFoo($foo){
if ( $foo === null ){
$foo = self::DEFAULT_FOO;
}
$this->foo = $foo;
}
// ...
}
然后确保设置by_reference
以确保每次都调用setter:
$builder->add('field', 'text', array(
'by_reference' => true
));
答案 1 :(得分:0)
据我了解
尝试添加必需的false并在控制器操作中处理它。
$builder->add('field', 'text', array('required' => false));