KU案例2之19 表单默认数据

现在,如果我们想要一些默认的数据出现在表单上,该怎么做呢?我们可以把默认数据作为参数传给createFormBuilder:

刷新,检查一下。

让form有一个User对象:data_class选项

当我们提交,$form->getData()会反给我们一个数组。这很棒,但是还能更棒,我们删除createFormBuilder默认的数据,并添加第二个参数(他是一个数组,键为data_class,值为User类)这样$form->getData()会给我们返回一个User对象。

让我们再次尝试:

不错吧,我们从表单数据中得到了一个完整的User对象。在symfony幕后,表单创建了一个新的User对象,然后调用setUsername,setEmail和setPassword,把form的每个值都传入进来。

现在,我们来简化我们控制器上的东西

 

默认数据为一个对象

那么我们怎么为现在的表单设置默认数据呢?我们传入之前的数据试试

刷新密切关注这个错误

上面这段话告诉我们,不应该传入数组,应该给他一个User对象。那么根据data_class的设置告诉表单无论是输出还是输入都应该是一个User。因此他的默认值,只能是User对象。

现在刷新!他看起来很棒!

发表评论