>

의 위에 hook_block_view_alter() 이 블록이 표시하는 총 행 수를 가져와야합니다.

예를 들어 다음 블록으로 볼 수 있습니다.

의 위에 hook_block_view_alter() 불필요한 블록을 제거하고 위의 그림에 표시된 블록을 얻기 위해 적절한 검사를 수행합니다.

function mymodule_block_view_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  if (!preg_match('~^views_block:taxonomy_tag_list~', $block->getPluginId())) {
    return;
  }
  $view = $block->getViewExecutable();
  // Gets the number of rows
  $totalRows = $view->get_total_rows;
}

그러나 어떤 이유로 $totalRows 포함 NULL .

현재 뷰의 객체는 다음과 같습니다.

총 행 수를 얻을 수없는 이유는 무엇입니까? 어쩌면 내가 잘못된 후크를 사용하고 있습니까?


  • 답변 # 1

    사용 views_view_ 후크, 즉 views_view_unformatted , views_view_list 등 ... 내보기 블록에 대해 PHP 수로 시도했지만 훌륭하게 작동했습니다.

    내 기능은 다음과 같습니다

    function MYTHEME_preprocess_views_view_unformatted(&$vars) {
      $num_rows = $vars["rows"];
      $count = count($num_rows);
      echo '<h2>This view has ' . $count . ' rows</h2><br>';
    }
    
    

    이로 인해 뷰의 행 수가 산출되었습니다.

    인쇄, 나는 본다 :

  • 답변 # 2

    후크가 필요 없습니다.

    첨가 {{ view.total_rows }} 모든 뷰 템플릿에서 views-view.html.twig 충분하다

  • 이전 drupal - 컨트롤러에서 둘 이상의 필드 값을 렌더링하려면 어떻게해야합니까?
  • 다음 drupal - 경로 컨트롤러 번역