function FormCache::getCache
Same name in other branches
- 9 core/lib/Drupal/Core/Form/FormCache.php \Drupal\Core\Form\FormCache::getCache()
- 8.9.x core/lib/Drupal/Core/Form/FormCache.php \Drupal\Core\Form\FormCache::getCache()
- 11.x core/lib/Drupal/Core/Form/FormCache.php \Drupal\Core\Form\FormCache::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.