Почему title вьюшки не меняется а вместо этого рядом с ним добавляется новая строка, когда я использую метод setTitle()?

Главные вкладки

Аватар пользователя nathan158 nathan158 5 октября 2022 в 15:10

На странице вьюшки есть exposed фильтр по категориям. При выборе категории нужно изменять title вьюшки на выбранную категорию в фильтре. Так как по дефолту title вьюшки не отображается на странице добавил его в шаблон вьюшки:
{{ view.title }}
И отобразился дефолтный title: product-list.

Реализую изменение title вот так:

<?php
/**
 * Implements hook_views_post_render().
 */
function entity_product_admin_views_post_render(ViewExecutable $view, array &$outputCachePluginBase $cache) {
  
$storage = \Drupal::entityTypeManager()->getStorage('node');
  
$category_id $view->getExposedInput()['product_category'];

  if (

$category_id !== NULL) {
    
$category_node $storage->load($category_id);
    
$category_name $category_node->get('field_name')->getString();
    
$title $category_name;
    
$view->setTitle($title);
  }

}

?>

Но оно вместо того чтобы изменять title с product-list на выбранную категорию (например Accessories) каждый раз добавляет новоизбранную категорию:

product-list Accessories

После еще одного изменения значение фильтра на Sweatshirts:
product-list Accessories Sweatshirts

Как решить данную проблему?

Комментарии

Аватар пользователя ivnish ivnish 6 октября 2022 в 20:41

nathan158 wrote: Как решить данную проблему?

Для начала отладчиком пройти, посмотреть что в переменной $view после смены заголовка