function FormCache::getCache
Fetches a form from the cache.
Parameters
string $form_build_id: The unique form build ID.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormCacheInterface::getCache
File
- 
              core/lib/ Drupal/ Core/ Form/ FormCache.php, line 120 
Class
- FormCache
- Encapsulates the caching of a form and its form state.
Namespace
Drupal\Core\FormCode
public function getCache($form_build_id, FormStateInterface $form_state) {
  if ($form = $this->keyValueExpirableFactory
    ->get('form')
    ->get($form_build_id)) {
    if (isset($form['#cache_token']) && $this->csrfToken
      ->validate($form['#cache_token']) || !isset($form['#cache_token']) && $this->currentUser
      ->isAnonymous()) {
      $this->loadCachedFormState($form_build_id, $form_state);
      // Generate a new #build_id if the cached form was rendered on a
      // cacheable page.
      $build_info = $form_state->getBuildInfo();
      if (!empty($build_info['immutable'])) {
        $form['#build_id_old'] = $form['#build_id'];
        $form['#build_id'] = 'form-' . Crypt::randomBytesBase64();
        $form['form_build_id']['#value'] = $form['#build_id'];
        $form['form_build_id']['#id'] = $form['#build_id'];
        unset($build_info['immutable']);
        $form_state->setBuildInfo($build_info);
      }
      return $form;
    }
  }
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
