如何配置空数据形式类
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.4,不再维护。
读这个页面的更新版本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日24
/ / src / Acme / DemoBundle /形式/类型/ BlogType.php/ /……使用ob娱乐下载\组件\形式\AbstractType;使用Acme\DemoBundle\实体\博客;使用ob娱乐下载\组件\OptionsResolver\OptionsResolverInterface;类BlogType扩展AbstractType{私人美元someDependency;公共函数__construct(美元someDependency){美元这- >someDependency =美元someDependency;}/ /……公共函数setDefaultOptions(OptionsResolverInterface美元解析器){美元解析器- >setDefaults (数组(“empty_data”= >新博客(美元这- >someDependency)));}}
您可以实例化类无论你想要的。在这个例子中,我们通过一些依赖BlogType
当我们实例化它,然后用它来实例化博客
类。关键是,你可以设置empty_data
确切的“新”对象,你想使用。
选项2:提供一个闭包
使用闭包是首选方法,因为它只会创建对象如果它是必要的。
关闭必须接受FormInterface
实例作为第一个参数:
1 2 3 4 5 6 7 8 9 10 11 12
使用ob娱乐下载\组件\OptionsResolver\OptionsResolverInterface;使用ob娱乐下载\组件\形式\FormInterface;/ /……公共函数setDefaultOptions(OptionsResolverInterface美元解析器){美元解析器- >setDefaults (数组(“empty_data”= >函数(FormInterface美元形式){返回新博客(美元形式- >get (“标题”)- >getData ());}));}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。