如何配置空数据形式类

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.0,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何配置空数据形式类

empty_data选项允许您指定一个空为表单类数据集。这个空的数据集使用如果你绑定的形式,但没有叫setData ()在表单或当你创建的形式传递数据。例如:

1 2 3 4 5 6 7 8 9 10
公共函数indexAction(){美元博客=……;/ /美元博客作为数据传递,所以empty_data选项是不需要美元形式=美元- >createForm (BlogType (),美元博客);/ /没有数据传递,所以empty_data用于获得“数据”美元形式=美元- >createForm (BlogType ());}

默认情况下,empty_data被设置为。或者,如果你已经指定了data_class选择表单类,它将默认为该类的一个新实例。该实例将创建通过调用不带参数的构造函数。

如果你想覆盖这种默认行为,有两种方法可以做到这一点。

选项1:实例化一个新类

您可以使用这个选项的一个原因是如果你想使用一个构造函数,该函数接收参数。记住,默认data_class选项调用不带参数的构造函数:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
/ / src / Acme / DemoBundle /形式/类型/ BlogType.php/ /……使用ob娱乐下载\组件\形式\AbstractType;使用Acme\DemoBundle\实体\博客;BlogType扩展AbstractType{私人美元someDependency;公共函数__construct(美元someDependency){美元- >someDependency =美元someDependency;}/ /……公共函数getDefaultOptions(){返回数组(“empty_data”= >博客(美元- >someDependency));}}

您可以实例化类无论你想要的。在这个例子中,我们通过一些依赖BlogType当我们实例化它,然后用它来实例化博客对象。关键是,你可以设置empty_data确切的“新”对象,你想使用。

选项2:提供一个闭包

使用闭包是首选方法,因为它只会创建对象如果它是必要的。

关闭必须接受FormInterface实例作为第一个参数:

1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\形式\FormInterface;/ /……公共函数getDefaultOptions(){返回数组(“empty_data”= >函数(FormInterface美元形式){返回博客(美元形式- >get (“标题”)- >getData ());});}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。