5 C
Madrid
lunes, abril 1, 2024
spot_img

Confusión de plantilla de rama y foreach de Drupal 8

Buenos dias,

Estoy realmente confundido con el sistema de plantillas twig en Drupal 8 y cómo incorporar datos en él.

Construí un módulo que trae datos a un bloque. La cosa es que no puedo mostrarlos normalmente. Solo obtengo el último campo.

El build() del módulo

public function build() { $config = $this->getConfiguration(); $getResult = $this->DatabaseResult(); print_r($obtenerResultado); $datos = []; foreach ($obtenerResultado como $clave) { $datos = [
‘fid’ => $key[‘fid’]’nombre de archivo’ => $ clave[‘filename’]
]; } return array ( ‘#theme’ => ‘mymodule’, ‘#title’ => $data[‘fid’]’#nombre de archivo’ => $datos[‘filename’] // Viene del siguiente formulario); }

El resultado del print_r de arriba

El código custom.module

función mymodule_theme($existente, $tipo, $tema, $ruta) { return array(‘mymodule’ => array( ‘variables’ => array( ‘title’ => []’nombre de archivo’ => [], ‘nombre’ => nulo ), ‘plantilla’ => ‘bloque–holabloque’ ) ); }

Y el patrón de ramitas

{{ título_prefijo }} {{ título_sufijo }}

Resultado

{% para único en el título %}

{{único}} {{nombre de archivo}}

{% endfor%}

Gracias de antemano

No sé si arreglar esto solucionará el problema, pero no puede doler.

foreach ($obtenerResultado como $clave) { $datos = [
‘fid’ => $key[‘fid’]’nombre de archivo’ => $ clave[‘filename’]
]; }

Cada vez que se repite, el valor de $data se convertirá en una matriz diferente. Entonces, cualquiera que sea el último «cada» es lo que serán los $datos. Apuesto a que eso no es lo que quieres, de lo contrario sería un «pop».

Creo que lo que quieres está ahí.

foreach ($obtenerResultado como $clave) { $datos[] = [
‘fid’ => $key[‘fid’]’nombre de archivo’ => $ clave[‘filename’]
]; }

1 Me gusta

No, proporciona fid de índice indefinido y nombre de archivo de índice indefinido en filas.

‘fid’ => $clave[‘fid’]’nombre de archivo’ => $ clave[‘filename’]

También cambié la ramita a

Resultado

{% para único en el título %}

{{volcado (único)}}

{% endfor%}

y recibo

matriz (1) { [«fid»]=> cadena (3) «184» } matriz (1) { [«fid»]=> cadena (3) «191» } matriz (1) { [«fid»]=> cadena(1) «6» } matriz(1) { [«fid»]=> cadena (3) «625» } matriz (1) { [«fid»]=> cadena(3) «189» }

Sabía que tenía algo que ver con la ramita. El nuevo código con errores que estoy tan cerca.

public function build() { $config = $this->getConfiguration(); $getResult = $this->DatabaseResult(); $datos = $obtenerResultado; return array ( ‘#theme’ => ‘mymodule’, ‘#title’ => $data ); } public function DatabaseResult() { // Devolver un objeto DrupalCoreDatabaseConnection. $conexión = DrupalCoreDatabaseDatabase::getConnection(‘predeterminado’, ‘migrar’); $resultado = $conexión->consulta(‘ SELECT fld.fid, fld.filename, fld.filemime, fld.filesize, fld.status, fld.timestamp FROM {files} fld ‘); if ($resultado) { foreach ($resultado como $registro) { $campos[] =[
‘fid’ => $record->fid,
‘filename’ => $record->filename
]; } } devuelve $campos; }

Y la ramita que trae todo normalmente

Resultado

{% para único en el título %}

Título{{único[‘fid’]}}
Nombre de archivo {{único[‘filename’]}}

{% endfor%}

El módulo personalizado

function hola_mundo_tema($existente, $tipo, $tema, $ruta) { return arreglo(‘mimódulo’ => arreglo( ‘variables’ => arreglo( ‘nombre’ => nulo ), ‘plantilla’ => ‘bloque– holabloque’ ) ); }

Y sobre todo el Resultado que viene normalmente
Error de usuario: «fid» es una clave de matriz de representación no válida en DrupalCoreRenderElement::children() (línea 97 de core/lib/Drupal/Core/Render/Element.php).

Error de usuario: «nombre de archivo» es una clave de matriz de representación no válida en DrupalCoreRenderElement::children() (línea 97 de core/lib/Drupal/Core/Render/Element.php).

Granja

4 de febrero de 2019 a las 23:57

5

Este tema se cerró automáticamente 91 días después de la última respuesta. Ya no se permiten nuevas respuestas.

Artículos relacionados

Dejar respuesta

Please enter your comment!
Please enter your name here

- Anuncio -spot_img

Últimos artículos

3,913SeguidoresSeguir
0suscriptoresSuscribirte