在Symfony2中渲染没有值的表单

时间:2015-03-18 10:23:40

标签: symfony

我正在构建一些在某些字段中具有默认值的表单:

$builder->add('field', 'text', array('data' => 'Default value');

然后在Twig中渲染此表单字段,如:

{{ form_widget(form.field) }}

它工作正常,但我不想要'默认值'设置在HTML中呈现的输入标记中,因为我只希望此默认值设置为内部,而最终用户并不知道此值。 Symfony2中是否有任何内置方法来处理它,或者我必须制作一些自定义代码?

2 个答案:

答案 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));