Uso en la clase
Las consultas se pueden extraer en objetos basados en clases personalizadas. Por ejemplo, si tenemos una clase llamada ExampleClass, la siguiente consulta devolverá objetos del tipo ExampleClass.
$result = $connection->query("SELECT id, title FROM {example_table}", [], [ 'fetch' => 'ExampleClass', ]);
Si la clase tiene un método __construct(), los objetos serán creados, las propiedades serán añadidas al objeto, y luego se llamará al método __construct(). Por ejemplo, si tienes la siguiente clase y consulta.
class ExampleClass { function __construct() { // Hacer algo } } $result = $connection->query("SELECT id, title FROM {example_table}", [], [ 'fetch' => 'ExampleClass', ]);
El objeto será creado, las propiedades id y title serán añadidas al objeto, y luego se ejecutará __construct(). El orden de estos eventos está relacionado con un error en PHP para versiones inferiores a la 5.2.
Si el objeto tiene un método __construct() que debe ejecutarse antes de añadir las propiedades al objeto, el siguiente ejemplo muestra cómo hacerlo.
$result = $connection->query("SELECT id, title FROM {example_table}"); foreach ($result->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'ExampleClass') as $record) { // Hacer algo }
Los argumentos pasados a fetchAll pueden usarse de la misma manera. PDO::FETCH_CLASS indica a fetchAll que tome el conjunto de resultados devueltos y añada los valores como propiedades al objeto del tipo ExampleClass (segundo argumento). PDO::FETCH_PROPS_LATE indica a fetchAll que añada el conjunto resultante como propiedades al objeto después de llamar a __construct().
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.