Usuario:ManuelRomero/Laravel/QueryBuilder
De WikiEducator
< Usuario:ManuelRomero | Laravel
Revisión a fecha de 00:37 14 mar 2019; ManuelRomero (Discusión | contribuciones)
La clase DB
- En realidad no es una clase explícita, es una facade
- Podríamos considerar una facade como un patrón estructural que define una interfaz simplificada de un subsistema más complejo
- Para su uso lo podemos intuir como un alias, que facilita el uso de clases y sus métodos.
- Para usarlo debemos especificar su uso
use Illuminate\Support\Facades\DB;
- Vamos a ver cómo usarlo, de forma básica
- 1.-Controlador
php artisan controller:make Tienda
- 2.-Routes (web.php)
- Ahora asociamos ese controlador a una ruta
Route::get('productos', 'Tienda@getProductos');
- 3.-Escribimos el método
- Opciones
Recuperar todos los productos DB::table('productos')->get();
===Obtener todos los productos
Ahora editamos el fichero Tienda.php que tenemos en cotrollers y escribimos el código en el método getProductos
public function getProductos(){ $conexion = DB::connection('tienda')->select ('select nombre_corto ' . 'from productos where familia = ?', array('ORDENA')); View::make('productos', array('p' =>$p);
- Y lo último creamos la plantilla tienda
<!doctype html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Lista de productos</title> </head> <body> <ul> @foreach ($p as $productos) <li>producto ordena llamado {{ $productos->nombre_corto }} </li> @endforeach </ul> </body> </html>
- Con esta clase podremos ejecutar consultas
- El definir el fichero de configuración anterior nos permite conectar a la base de datos
- Seleccionando
$consulta = DB::select("select * from usuarios where nombre = ?", array ("manolo"); DB::insert('insert into usuarios (id, name) values (?, ?)', array(1, 'Dayle')); $numFilas = DB::update('update usuarios set votes = 100 where name = ?', array('John')); $numFilas = DB::delete('delete from usuarios');
- Si hay varias conexiones usaremos el método connection() para seleccionar una de ellas
$usuario = DB::connection('usuarios')->select(...);