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 %}
{% 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 %}
{% 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 %}
{% 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).
sistema
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.