FormBuilder::getFormId

public FormBuilder::getFormId($form_arg, FormStateInterface &$form_state)

Determines the ID of a form.

Parameters

\Drupal\Core\Form\FormInterface|string $form_arg: The value is identical to that of self::getForm()'s $form_arg argument.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

string The unique string identifying the desired form.

Overrides FormBuilderInterface::getFormId

File

core/lib/Drupal/Core/Form/FormBuilder.php, line 182

Class

FormBuilder
Provides form building and processing.

Namespace

Drupal\Core\Form

Code

public function getFormId($form_arg, FormStateInterface &$form_state) {
  // If the $form_arg is the name of a class, instantiate it. Don't allow
  // arbitrary strings to be passed to the class resolver.
  if (is_string($form_arg) && class_exists($form_arg)) {
    $form_arg = $this->classResolver->getInstanceFromDefinition($form_arg);
  }

  if (!is_object($form_arg) || !($form_arg instanceof FormInterface)) {
    throw new \InvalidArgumentException("The form argument $form_arg is not a valid form.");
  }

  // Add the $form_arg as the callback object and determine the form ID.
  $form_state->setFormObject($form_arg);
  if ($form_arg instanceof BaseFormIdInterface) {
    $form_state->addBuildInfo('base_form_id', $form_arg->getBaseFormId());
  }
  return $form_arg->getFormId();
}
doc_Drupal
2016-10-29 09:15:25
Comments
Leave a Comment

Please login to continue.