Inspector показывает что на странице он есть:
<div class='search'>
......
<а href='/paper/c/53' class='category-link'></a>
</div>
......
<а href='/paper/c/53' class='category-link'></a>
</div>
Но при клике не происходит переход на странцы, где я сделал ошибку?
<?php
public function build() {
$term = $this->getConfiguration()['search']['#value'];
$facets_manager = \Drupal::getContainer()->get('facets.manager');
$facetsource_id = 'search_api:views_page__category_facets_test__page_1';
$facets = $facets_manager->getFacetsByFacetSourceId($facetsource_id);
$facets_manager->updateResults($facetsource_id);
$rows = [];
foreach (
$facets as $facet) {
$facets_results = $facet->getResults();
foreach ($facets_results as $result) {
$node_id = $result->getRawValue();
if ($node = $this->entityTypeManager->getStorage('node')->load($node_id)) {
$rows[] = [
'label' => $node->get('field_name')->value,
'link' => $node->get('field_custom_url')->value,
'count' => $result->getCount(),
];
}
else {
$rows[] = [
'label' => $this->t("category doesn't set"),
'link' => "#",
'count' => $result->getCount(),
];
}
}
}
$build['container'] = [
'#type' => 'container',
'#attributes' => [
'class' => ['search-results-categories-wrapper'],
],
];
foreach (
$rows as $row) {
$build['container'][] = [
'#type' => 'container',
'#attributes' => [
'class' => ['search-results-categories-item'],
],
'label' => [
'#type' => 'container',
'#markup' => $row['label'],
'#attributes' => [
'class' => ['category-label'],
],
],
'count' => [
'#type' => 'container',
'#markup' => $row['count'],
'#attributes' => [
'class' => ['category-count'],
],
],
'link' => [
'#type' => 'link',
'#url' => Url::fromUserInput($row['link'], ['text' => $term]),
'#attributes' => [
'class' => ['category-link'],
],
],
];
}
return $build;
}
?>
Комментарии
Ключа 'text' нет в допустимом массиве опций для любых методов
Url::
.Кроме того, непонятно, что именно у вас приходит в параметр
$user_input
(1-й параметр методаUrl::fromUserInput
). Поскольку вы не пишете, в каком формате указывается URL в поле'field_custom_url'
. Однако, из документации для метода:То есть - первый параметр должен начинаться со слеша, если это путь.
PS.
dpm()
в помощь.Извиняюсь, неправильно написал в вопросе строчку:
<а href='/paper/c/53' class='category-link'></a>
Поправил.
А какие стили у этой ссылки? У вас в ней нет содержимого, поэтому размер будет по умолчанию 0х0 пикселей
Либо каким-то элементом накрыто сверху.