Buongiorno,
sto procedendo con la realizzazione del mio carousel con drupal.
Alla fine ho fatto una query che mi leggo i dati da db dal controller, e li metto in un array
che passo al template. Facendo il drupal_set_message sul numero degli elementi presente nell'array, nel metodo del controller li vedo correttamente quelli caricati, però poi nel file del template mi da array vuoto perchè?
Ecco i vari pezzi di codici

metodo del controller:

public function provametodo() {
   $form['form'] = $this->formBuilder()->getForm('Drupal\gestioneutenti\Form\UtentifilterForm');
   $query = \Drupal::database()->select('taxonomy_term_field_data', 't');
   $query->fields('t');
   $query->condition('t.vid', "macrocategorie_geodati", '=');
   $result = $query->execute();
   $ckanurl="";
   $vet=array();
   if($result != null){
   while ($riga = $result->fetchAssoc()) {
           $vet[$riga["name"]]=$riga["name"];
    }
   } 
   drupal_set_message("Numero record trovati ".count($vet));
   return ['#id' => "10" ,'#form' => $form, 'vettore' => $vet,'#theme' => 'contacts_show_page'];
   
}

funzione gestioneutenti_theme nel file nomemodulo.module

function gestioneutenti_theme()
{

  $templates = array('contacts_show_page' => array('variables' => ['id' => NULL,'form' => NULL,'vettore' => NULL],'template' =>'contacts_show'));
  return $templates;
        
}

codice file twig:

{% if users|length > 0 %}
<p>Elementi trovati</p>
{% endif %}

{% if users|length == 0 %}
<p>Elementi non trovati</p>
{% endif %}

{% for item in vettore %}
        <p>{{ item.name|e }}</p>
    {% else %}
        <p><em>no user found</em></p>
    {% endfor %}

Mi stampa elementi non trovati, quando nel controller con drupal_set_message ho il corretto numero di elementi...