Сформировать массив в hook

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

Аватар пользователя Artalek Artalek 14 октября 2021 в 14:03

Здравствуйте, не получается сформировать массив в MYTHEME_preprocess_page.
Ошибка : Warning: Illegal offset type в gut_preprocess_page()
и не формирует массив

У меня есть Тип материала: https://prnt.sc/1w3tkfz

И я получаю все Содержимое по данному типу и формирую массив:
https://prnt.sc/1w3tov8

<?php
function gut_preprocess_page(&$variables)
{
    
$node = \Drupal::routeMatch()->getParameter('node');
    if (
$node->getType() === 'page' && (int)$node->id() === 19) {
        
$faqs = [];

        

$query = \Drupal::entityQuery('node')->condition('type''faq');
        
$nids $query->execute();
        
$contents $node->loadMultiple($nids);

        if (!empty(

$contents)) {
            foreach (
$contents as $content) {
                
$type_id $content->get('field_faq_type');
                
$faqs[$type_id][] = [
                    
'title' => $content->get('title')->value,
                    
'field_faq_answer' => $content->get('field_faq_answer')->value,
                    
'field_faq_type' => $type_id,
                ];
            }
        }
        
$variables['faqs'] = $faqs;
    }
}
?>

Жалуется на [$type_id].
А еще ему не нравится вот это: выдает 500 ошибку

<?php
'title' => $content->get('title')->value,
'field_faq_answer' => $content->get('field_faq_answer')->value,
'field_faq_type' => $type_id,
?>

Лучший ответ

Аватар пользователя OldWarrior OldWarrior 14 октября 2021 в 14:34
1

Artalek wrote: Жалуется на [$type_id]

<?php
...
$type_id $content->get('field_faq_type')->value();
...
?>

Метод ::value() тоже хочет жить.

Комментарии