all() public method

Gets all fields.
public all ( ) : FormField[]
return Symfony\Component\DomCrawler\Field\FormField[] An array of fields
Ejemplo n.º 1
0
 public function testConstructorLoadsOnlyFieldsOfTheRightForm()
 {
     $dom = $this->createTestMultipleForm();
     $nodes = $dom->getElementsByTagName('form');
     $buttonElements = $dom->getElementsByTagName('button');
     $form = new Form($nodes->item(0), 'http://example.com');
     $this->assertCount(3, $form->all());
     $form = new Form($buttonElements->item(1), 'http://example.com');
     $this->assertCount(5, $form->all());
 }
Ejemplo n.º 2
0
 /**
  * Returns an array of name => value pairs for the passed form.
  *
  * For form fields containing a name ending in [], an array is
  * created out of all field values with the given name.
  *
  * @param \Symfony\Component\DomCrawler\Form the form
  * @return array an array of name => value pairs
  */
 protected function getFormValuesFor(Form $form)
 {
     $values = [];
     $fields = $form->all();
     foreach ($fields as $field) {
         if ($field->isDisabled() || !$field->hasValue() || $field instanceof FileFormField) {
             continue;
         }
         $fieldName = $this->getSubmissionFormFieldName($field->getName());
         if (substr($field->getName(), -2) === '[]') {
             if (!isset($values[$fieldName])) {
                 $values[$fieldName] = [];
             }
             $values[$fieldName][] = $field->getValue();
         } else {
             $values[$fieldName] = $field->getValue();
         }
     }
     return $values;
 }
 /**
  * Merges second form values into first one.
  *
  * @param Form $to   merging target
  * @param Form $from merging source
  */
 private function mergeForms(Form $to, Form $from)
 {
     foreach ($from->all() as $name => $field) {
         $fieldReflection = new \ReflectionObject($field);
         $nodeReflection = $fieldReflection->getProperty('node');
         $valueReflection = $fieldReflection->getProperty('value');
         $nodeReflection->setAccessible(true);
         $valueReflection->setAccessible(true);
         $isIgnoredField = $field instanceof InputFormField && in_array($nodeReflection->getValue($field)->getAttribute('type'), array('submit', 'button', 'image'), true);
         if (!$isIgnoredField) {
             $valueReflection->setValue($to[$name], $valueReflection->getValue($field));
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * Returns an array of name => value pairs for the passed form.
  *
  * The function calls getPhpValues on the passed form object, then
  * resets numeric array indexes for array field names without array
  * keys specified (i.e. 'fieldname[]' but not 'fieldname[keyname]')
  * as expected by setCheckboxBoolValues.
  *
  * @param \Symfony\Component\DomCrawler\Form the form
  * @return array an array of name => value pairs
  */
 protected function getFormValuesFor(Form $form)
 {
     $values = $form->getPhpValues();
     $fields = $form->all();
     foreach ($fields as $field) {
         $name = $this->getSubmissionFormFieldName($field->getName());
         if (!empty($values[$name]) && substr($field->getName(), -2) === '[]') {
             $values[$name] = array_values($values[$name]);
         }
     }
     return $values;
 }
Ejemplo n.º 5
0
 /**
  * Edits the data of a form
  *
  * @param  Client $client
  * @param  Form   $form
  * @param  array  $data
  */
 protected function submitEditForm(Client $client, Form $form, array $data = array())
 {
     $originalData = array();
     foreach ($form->all() as $fieldName => $formField) {
         $originalData[$fieldName] = $formField->getValue();
     }
     $data = array_merge($originalData, $data);
     $this->submitForm($client, $form, $data);
 }