Constructor de consultas
Laravel incluye una serie de clases que nos facilita la construcción de consultas y otro tipo de operaciones con la base de datos. Además, al utilizar estas clases, creamos una notación mucho más legible, compatible con todos los tipos de bases de datos soportados por Laravel y que nos previene de cometer errores o de ataques por inyección de código SQL.
Consultas
Para realizar una "Select" que devuelva todas las filas de una tabla utilizaremos el siguiente código:
En el ejemplo se utiliza el constructor DB::tabla
indicando el nombre de la tabla sobre la que se va a realizar la consulta, y por último se llama al método get()
para obtener todas las filas de la misma.
Si queremos obtener un solo elemento podemos utilizar first
en lugar de get
, de la forma:
Clausula where
Para filtrar los datos usamos la clausula where
, indicando el nombre de la columna y el valor a filtrar:
En este ejemplo, la clausula where
filtrará todas las filas cuya columna name
sea igual a Pedro
. Si queremos realizar otro tipo de filtrados, como columnas que tengan un valor mayor (>
), mayor o igual (>=
), menor (<
), menor o igual (<=
), distinto del indicado (<>
) o usar el operador like
, lo podemos indicar como segundo parámetro de la forma:
Si añadimos más clausulas where
a la consulta por defecto se unirán mediante el operador lógico AND
. En caso de que queramos utilizar el operador lógico OR
lo tendremos que realizar usando orWhere
de la forma:
orderBy / groupBy / having_
También podemos utilizar los métodos orderBy
, groupBy
y having
en las consultas:
Offset / Limit
Si queremos indicar un offset o limit lo realizaremos mediante los métodos skip
(para el offset) y take
(para limit), por ejemplo:
Transacciones
Laravel también permite crear transacciones sobre un conjunto de operaciones:
En caso de que se produzca cualquier excepción en las operaciones que se realizan en la transacción se desharían todos los cambios aplicados hasta ese momento de forma automática.
Más informacion
Para más información sobre la construcción de Querys (join, insert, update, delete, agregados, etc.) podéis consultar la documentación de Laravel en su sitio web:
Last updated