Ejecutar procedimientos de almacenado desde Drupal

Published on
Tiempo de lectura: 2 min
––– visitas

Trabajar con procedimientos almacenados en Drupal puede resultar un poco complicado. Aquí te dejo un ejemplo rápido de cómo hacerlo.

StoredProcedureController.php

// No necesitamos usar execute(), llamamos directamente a fetchAssoc() para obtener un array asociativo o fetchObject() para obtener un objeto
// $sp = Database::getConnection()->query("EXECUTE DRU.SP_NAME", $options)->fetchObject();

$sp = Database::getConnection()->query("EXECUTE DRU.SP_NAME", $options)->fetchAssoc();


// Devolvermos el resultado via la render array
  return [
    '#sp' => $sp,
  ]

// Usamos hook_theme() para que nuestro módulo sepa que archivo twig vamos a usar y que variable vamos a pasarle.

StoredProcedure.module
function HOOK_theme(){
    return [
    'variables' => [
      '#sp' => $sp,
    ],
  ];
}
StoredProcedure.html.twig
// Los datos se pasan del controlador al archivo twig a través de la render array
// Y puesto que es una array asociativa usamos key/value

{% for key,value in sp %}
    Key :
    {{ key }}
    Value :
    {{ value }}
{% endfor %}