logo

Paleta de lienzo: 隆Hazlo colorido!馃帹

Palette - Constructor visual de p谩ginas, no se requiere t铆tulo en dise帽o.

Demo en vivo Descargar Palette

Scroll
18/06/2025, by Ivan

Agregar campo

Para agregar un campo a una consulta Select, use el m茅todo addField():

$title_field = $query->addField('n', 'title', 'my_title');

El c贸digo anterior indicar谩 a la consulta seleccionar el campo "title" de la tabla con alias "n" y asignarle el alias "my_title". Si no se especifica un alias, este se generar谩 autom谩ticamente. En la gran mayor铆a de los casos, el alias generado ser谩 simplemente el nombre del campo. En este ejemplo, ser谩 "title". Si ese alias ya existe, el alias ser谩 el nombre de la tabla y el nombre del campo. En este ejemplo, ser铆a "n_title". Si ese alias tambi茅n existe, se a帽adir谩 un contador al alias hasta encontrar uno no usado, por ejemplo "n_title_2".

Tenga en cuenta que si crea y llena la consulta manualmente y no especifica un alias, y el alias por defecto no est谩 disponible, probablemente haya un error en su c贸digo. Sin embargo, si est谩 escribiendo una implementaci贸n de hook_query_alter(), no puede saber con certeza qu茅 alias ya se usan, por lo que siempre debe usar el alias generado.

Agregar varios campos

Para seleccionar varios campos, llame a addField() varias veces en el orden deseado. Tenga en cuenta que en la mayor铆a de los casos el orden de los campos no deber铆a importar, y si importa, probablemente haya una falla en la l贸gica del m贸dulo.

Alternativamente, puede usar el m茅todo fields() para agregar varios campos simult谩neamente.

$query->fields('n', ['nid', 'title', 'created', 'uid']);

El m茅todo anterior es equivalente a llamar a addField() cuatro veces, una por cada campo. Sin embargo, fields() no soporta especificar un alias para un campo. Tambi茅n devuelve el mismo objeto de consulta para que el m茅todo pueda encadenarse, en lugar de devolver los alias generados. Si necesita conocer el alias generado, use addField() o getFields() para acceder a la estructura interna sin procesar de los campos.

Una llamada a fields() sin lista de campos resultar谩 en una consulta 芦SELECT *禄.

$query->fields('n');

Esto har谩 que se incluya "n.*" en la lista de campos de la consulta. Tenga en cuenta que no se crear谩n alias. Si la tabla que usa SELECT * contiene un campo que tambi茅n est谩 directamente especificado desde otra tabla, puede ocurrir una colisi贸n de nombres de campos en el conjunto de resultados. En ese caso, el conjunto de resultados contendr谩 solo uno de los campos con nombre com煤n. Por esta raz贸n, no se recomienda usar SELECT *.

Devolver solo un campo usando fetchField

Use el m茅todo fetchField para devolver solo un campo con la consulta, por ejemplo, lo siguiente (ejemplo un poco simple):

$query = $connection->select('node', 'n');
$query->condition('n.nid', 123);
$query->addField('n', 'title');
$result = $query->execute();
return $result->fetchField();