2017-11-17 8 views
2

내 drupal 8 사용자 정의 모듈에서 블록을 사용하여 현재 기사 페이지의 다음 및 이전 링크를 표시합니다. 그러나 캐싱으로 인해 노드를 전환 할 때 링크가 변경되지 않습니다. 이 블록의 캐싱을 어떻게 제한 할 수 있습니까? 내 머리를 감쌀 수 없습니다.

public function build() { 
     /** 
      * {@inheritdoc} 
      */ 

      $node = \Drupal::request()->attributes->get('node'); 
      $created_time = $node->getCreatedTime(); 
      $nextprevlinks =""; 
      $nextprevlinks .= $this->generateNext($created_time); 
      $nextprevlinks .= $this->generatePrevious($created_time); 

      return array('#markup' => $nextprevlinks); 
     } 
+2

당신은 말 그대로 그냥 반환 배열로'[ '#cache를'] ...'추가해야합니다. 그게 전부 야. 당신은 너무 가까이서 실제로 읽는 것을 상처를줍니다. [here] (https://drupal.stackexchange.com/questions/202063/how-do-i-programmatically-set-cache-age)도 참조하십시오. 그것은 내가 말했던 것과 같은 것이지만, 추가 옵션이 있습니다. – Andrew

+1

누군가 당신과 같은 시나리오를 가지고 있습니다. 답변에 관심이있을 수 있습니다 : https://drupal.stackexchange.com/questions/199527/how-do-i-correctly-setup-caching-for-my-custom-block -showing-content-dependent-o – teeyo

답변

0

내가 방금 한 것처럼 다른 사람의 뇌 방귀에.

이 내 반환 지금 모습입니다 :

return array('#markup' => $nextprevlinks, 
       '#cache' => array("max-age" => 0), 
     );