Entity afhankelijke block in Drupal 8

Drupal tip
Drupal tip

Entity afhankelijke block in Drupal 8

Drupal 8

Wanneer je een custom Drupal 8 block maakt waarvan de inhoud afhankelijk is van de Entity pagina waarop de block staat, kan je volgende code implementeren zodat de Block Cache afhankelijk is van de Entity Cache. Voeg deze functies toe aan je block class.

  public function getCacheTags() {
    //With this when your node change your block will rebuild
    if ($node = \Drupal::routeMatch()->getParameter('node')) {
      //if there is node add its cachetag
      return Cache::mergeTags(parent::getCacheTags(), array('node:' . $node->id()));
    } else {
      //Return default tags instead.
      return parent::getCacheTags();
    }
  }
  public function getCacheContexts() {
    //if you depends on \Drupal::routeMatch()
    //you must set context of this block with 'route' context tag.
    //Every new route this block will rebuild
    return Cache::mergeContexts(parent::getCacheContexts(), array('route'));
  }

 

Blijf op de hoogte via onze nieuwsbrief