Changeset 13044
- Timestamp:
- 11/16/08 22:56:45 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/sfDoctrinePlugin/trunk/lib/form/sfFormDoctrine.class.php
r13042 r13044 194 194 * Updates the values of the object with the cleaned up values. 195 195 * 196 * @param array $values An array of values 197 * 196 198 * @return BaseObject The current updated object 197 199 */ … … 208 210 209 211 // embedded forms 210 foreach ($this->embeddedForms as $name => $form) 211 { 212 if ($form instanceof sfFormDoctrine && is_array($values[$name])) 212 $this->updateObjectEmbeddedForms($values); 213 214 return $this->object; 215 } 216 217 /** 218 * Updates the values of the objects in embedded forms. 219 * 220 * @param array $values An array of values 221 * @param array $forms An array of forms 222 */ 223 public function updateObjectEmbeddedForms($values, $forms = null) 224 { 225 if (is_null($forms)) 226 { 227 $forms = $this->embeddedForms; 228 } 229 230 foreach ($forms as $name => $form) 231 { 232 if (!is_array($values[$name])) 233 { 234 continue; 235 } 236 237 if ($form instanceof sfFormDoctrine) 213 238 { 214 239 $form->updateObject($values[$name]); 215 240 } 216 } 217 218 return $this->object; 219 } 220 241 else 242 { 243 $this->updateObjectEmbeddedForms($values[$name], $form->getEmbeddedForms()); 244 } 245 } 246 } 247 221 248 /** 222 249 * Processes cleaned up values with user defined methods. … … 338 365 } 339 366 340 public function saveEmbeddedForms($con = null) 367 /** 368 * Saves embedded form objects. 369 * 370 * @param Connection $con An optional Connection object 371 * @param array $forms An array of forms 372 */ 373 public function saveEmbeddedForms($con = null, $forms = null) 341 374 { 342 375 if (is_null($con)) … … 345 378 } 346 379 347 foreach ($this->embeddedForms as $form) 380 if (is_null($forms)) 381 { 382 $forms = $this->embeddedForms; 383 } 384 385 foreach ($forms as $form) 348 386 { 349 387 if ($form instanceof sfFormDoctrine) … … 352 390 $form->getObject()->save($con); 353 391 } 392 else 393 { 394 $this->saveEmbeddedForms($con, $form->getEmbeddedForms()); 395 } 354 396 } 355 397 }

