Add cache metadata to quick form controller
This commit is contained in:
parent
be973941aa
commit
8a52fd3be6
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace Drupal\farm_quick\Controller;
|
namespace Drupal\farm_quick\Controller;
|
||||||
|
|
||||||
|
use Drupal\Core\Cache\CacheableMetadata;
|
||||||
use Drupal\Core\Controller\ControllerBase;
|
use Drupal\Core\Controller\ControllerBase;
|
||||||
use Drupal\Core\StringTranslation\StringTranslationTrait;
|
use Drupal\Core\StringTranslation\StringTranslationTrait;
|
||||||
use Drupal\Core\Url;
|
use Drupal\Core\Url;
|
||||||
|
@ -48,12 +49,19 @@ class QuickFormController extends ControllerBase {
|
||||||
* Returns a render array.
|
* Returns a render array.
|
||||||
*/
|
*/
|
||||||
public function index(): array {
|
public function index(): array {
|
||||||
|
|
||||||
|
// Start cacheability object with quick form config entity list tag.
|
||||||
|
$cacheability = new CacheableMetadata();
|
||||||
|
$cacheability->addCacheTags($this->entityTypeManager()->getStorage('quick_form')->getEntityType()->getListCacheTags());
|
||||||
|
|
||||||
|
// Build list item for each quick form.
|
||||||
/** @var \Drupal\farm_quick\Entity\QuickFormInstanceInterface[] $quick_forms */
|
/** @var \Drupal\farm_quick\Entity\QuickFormInstanceInterface[] $quick_forms */
|
||||||
$quick_forms = $this->quickFormInstanceManager->getInstances();
|
$quick_forms = $this->quickFormInstanceManager->getInstances();
|
||||||
$items = [];
|
$items = [];
|
||||||
foreach ($quick_forms as $id => $quick_form) {
|
foreach ($quick_forms as $id => $quick_form) {
|
||||||
$url = Url::fromRoute('farm_quick.quick_form', ['quick_form' => $id]);
|
$url = Url::fromRoute('farm_quick.quick_form', ['quick_form' => $id]);
|
||||||
if ($url->access()) {
|
if ($url->access()) {
|
||||||
|
$cacheability->addCacheableDependency($quick_form);
|
||||||
$items[] = [
|
$items[] = [
|
||||||
'title' => $quick_form->getLabel(),
|
'title' => $quick_form->getLabel(),
|
||||||
'description' => $quick_form->getDescription(),
|
'description' => $quick_form->getDescription(),
|
||||||
|
@ -72,6 +80,7 @@ class QuickFormController extends ControllerBase {
|
||||||
'#markup' => $this->t('You do not have any quick forms.'),
|
'#markup' => $this->t('You do not have any quick forms.'),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
$cacheability->applyTo($output);
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue