我想在textarea小部件上设置值。 我如何在 Symfony 3 中为textarea设置默认值 对于TextType(输入类型=“文本”)我可以使用值参数,但对于textarea,我不能!!!我如何设置textarea的默认值。
这是我的buildForm
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('linkdin', TextType::class, array('attr' => array('placeholder' =>
'linkdin','class' => 'form-control width100','value' =>
MainPageType::$content1[0]['linkdin'])))
->add('addres', CKEditorType::class, array('attr' => array('required' =>
'false','name'=>'editor1' ,'id' => 'editor1','class' => 'ckeditor','empty_data'
=> MainPageType::$content1[0]['addres'])))
.
.
答案 0 :(得分:3)
假设您使用的是Symfony 3.4,那就非常good documentation。
长话短说,您应该使用data
:
$builder->add('token', TextareaType::class, array(
'data' => 'abcdef',
));
正如文档所说:
数据选项始终覆盖渲染时从域数据(对象)获取的值。这意味着当表单编辑已经存在的对象时,对象值也会被覆盖,导致它在提交表单时丢失其持久值。
答案 1 :(得分:1)
如果您同时使用该表单保存新记录和编辑现有记录,则可能会发现'data'选项(Alex的解决方案)受到限制,因为这些字段已被默认值覆盖数据,同时编辑现有记录。
一种解决方案是在控制器的new()操作中手动设置默认数据,但只能在GET调用上,而不是在POST上设置。
{
//2018 year
"2018": {
//9 month
"9": {
//21 date
"21": {
//19 hr
"19": {
//15 min
"15": [
97,
83,
50,
63,
54,
58,
6,
84,
61,
65
],
"16": [
21,
8,
35,
13,
23,
63,
54,
58,
6,
17
],
},
},
},
},
"_id": ObjectID("5b7c177fbcce8c40216fc74d"),
"Device_Id": 103
}
答案 2 :(得分:0)
您可以将带有数据的变量传输到控制器中的formType,如
$form = $this->createForm(Form::class,$YourData);