21
21
*/
22
22
class FieldBuilder implements FieldBuilderInterface
23
23
{
24
+ /**
25
+ * @param string $name
26
+ * @param string $field
27
+ * @param array $options
28
+ * @param FormBuilderInterface $builder
29
+ */
24
30
public function addField ($ name , $ field , $ options , FormBuilderInterface $ builder )
25
31
{
26
32
if (array_key_exists ('data ' , $ options ) && $ field ->type == 'genemu_jquerydate ' ) {
@@ -42,34 +48,14 @@ public function addField($name, $field, $options, FormBuilderInterface $builder)
42
48
}
43
49
}
44
50
45
- private function addSingleField ($ name , $ field , $ options , $ builder )
46
- {
47
- $ builder ->add ($ name , $ field ->type , $ options );
48
- }
49
-
50
- private function addMultipleField ($ name , $ field , $ options , $ builder )
51
- {
52
- $ builder ->add ($ name , 'collection ' , array (
53
- 'label ' => $ options ['label ' ],
54
- 'error_bubbling ' => false ,
55
- 'type ' => new VirtualType ($ options , $ field ),
56
- 'allow_add ' => true ,
57
- 'allow_delete ' => true ,
58
- 'prototype ' => true ,
59
- 'required ' => ($ options ['required ' ]) ? $ options ['required ' ] : false ,
60
- 'attr ' => array ('class ' => 'prototype ' ),
61
- 'data ' =>(array_key_exists ('data ' , $ options ) && is_array ($ options ['data ' ])) ? $ options ['data ' ] : null
62
- ));
63
- }
64
-
65
51
/**
66
52
* Length constraint on multiple field
67
- * @param unknown $formFields
68
- * @param unknown $builder
53
+ * @param mixed $formFields
54
+ * @param mixed $builder
69
55
*/
70
56
public function addMultipleFieldPostBindEvent ($ formFields , $ builder )
71
57
{
72
- $ builder ->addEventListener (FormEvents::POST_BIND , function (FormEvent $ event ) use ($ builder , $ formFields ) {
58
+ $ builder ->addEventListener (FormEvents::POST_SUBMIT , function (FormEvent $ event ) use ($ builder , $ formFields ) {
73
59
74
60
$ form = $ event ->getForm ();
75
61
@@ -105,8 +91,8 @@ public function addMultipleFieldPostBindEvent($formFields, $builder)
105
91
106
92
/**
107
93
* Modifies data before they are bound to the form
108
- * @param unknown $formFields
109
- * @param unknown $builder
94
+ * @param mixed $formFields
95
+ * @param mixed $builder
110
96
*/
111
97
public function alterDataPreSetDataEvent ($ formFields , $ builder )
112
98
{
@@ -129,7 +115,7 @@ public function alterDataPreSetDataEvent($formFields, $builder)
129
115
if ($ dateTimeValue != false ) {
130
116
$ formData [$ name ][$ subFieldName ] = $ dateTimeValue ;
131
117
}
132
- } else if ("fieldset " == $ subField ->type ) {
118
+ } elseif ("fieldset " == $ subField ->type ) {
133
119
//In case a fieldset contains another fieldset with date - better rewrite with recursive walker
134
120
foreach ($ subField ->attr ->subforms as $ subSubFieldName => $ subSubField ) {
135
121
if ("date " == $ subSubField ->type && array_key_exists ($ name , $ formData ) && array_key_exists ($ subFieldName , $ formData [$ name ]) && array_key_exists ($ subSubFieldName , $ formData [$ name ][$ subFieldName ])) {
@@ -146,7 +132,7 @@ public function alterDataPreSetDataEvent($formFields, $builder)
146
132
}
147
133
}
148
134
}
149
- } else if ("date " == $ field ->type ) {
135
+ } elseif ("date " == $ field ->type ) {
150
136
$ dateTimeValue = \DateTime::createFromFormat ('Y-m-d H:i:s.u ' , $ formData [$ name ]['date ' ]);
151
137
// try to get the date without milliseconds
152
138
if (!$ dateTimeValue ) {
@@ -171,7 +157,7 @@ public function alterDataPreSetDataEvent($formFields, $builder)
171
157
*/
172
158
public function addAssociatedFielPostBindEvent ($ formFields , $ builder )
173
159
{
174
- $ builder ->addEventListener (FormEvents::POST_BIND , function (FormEvent $ event ) use ($ builder , $ formFields ) {
160
+ $ builder ->addEventListener (FormEvents::POST_SUBMIT , function (FormEvent $ event ) use ($ builder , $ formFields ) {
175
161
176
162
$ form = $ event ->getForm ();
177
163
@@ -203,4 +189,36 @@ public function addAssociatedFielPostBindEvent($formFields, $builder)
203
189
}
204
190
});
205
191
}
192
+
193
+ /**
194
+ * @param string $name
195
+ * @param \stdClass $field
196
+ * @param array $options
197
+ * @param FormBuilderInterface $builder
198
+ */
199
+ private function addSingleField ($ name , $ field , $ options , $ builder )
200
+ {
201
+ $ builder ->add ($ name , $ field ->type , $ options );
202
+ }
203
+
204
+ /**
205
+ * @param string $name
206
+ * @param \stdClass $field
207
+ * @param array $options
208
+ * @param FormBuilderInterface $builder
209
+ */
210
+ private function addMultipleField ($ name , $ field , $ options , $ builder )
211
+ {
212
+ $ builder ->add ($ name , CollectionType::class, array (
213
+ 'label ' => $ options ['label ' ],
214
+ 'error_bubbling ' => false ,
215
+ 'entry_type ' => new VirtualType ($ options , $ field ),
216
+ 'allow_add ' => true ,
217
+ 'allow_delete ' => true ,
218
+ 'prototype ' => true ,
219
+ 'required ' => ($ options ['required ' ]) ? $ options ['required ' ] : false ,
220
+ 'attr ' => array ('class ' => 'prototype ' ),
221
+ 'data ' => (array_key_exists ('data ' , $ options ) && is_array ($ options ['data ' ])) ? $ options ['data ' ] : null ,
222
+ ));
223
+ }
206
224
}
0 commit comments