Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/QueryBuilder»

De WikiEducator
Saltar a: navegación, buscar
(La clase DB)
 
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}}
 
{{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}}
 
===La clase DB===
 
===La clase DB===
*Con esta clase podremos ejecutar consultas
+
*En realidad no es una clase explícita, es una facade
*El definir el fichero de configuración anterior nos permite conectar a la base de datos
+
*Podríamos considerar una facade como un patrón estructural que define una interfaz simplificada de un subsistema más complejo
;Seleccionando
+
*Para su uso lo podemos intuir como un  alias, que facilita el uso de clases y sus métodos.
<source lang=php>
+
$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');
+
</source>
+
  
*Si hay varias conexiones usaremos el método connection() para seleccionar una de ellas
+
{{MRM_Web|Title=Facades|
 +
https://laravel.com/docs/5.8/facades
 +
}}
 +
*Para usarlo debemos especificar su uso
 
<source lang=php>
 
<source lang=php>
$usuario = DB::connection('usuarios')->select(...);
+
use Illuminate\Support\Facades\DB;
 
</source>
 
</source>
{{Actividad|
 
Haz un programa que muestre todos los productos que sean de tipo ORDENA}}
 
  
;Creamos la conexión de la base de datos
+
*Vamos a ver cómo usarlo, de forma básica
<!--
+
*En el fichero '''''database.php '''''
+
<source lang=php>
+
.....
+
  'tienda' => array(
+
'driver'    => 'mysql',
+
'host'      => 'localhost',
+
'database'  => 'dwes',
+
'username'  => 'root',
+
'password'  => 'root',
+
'charset'  => 'utf8',
+
'collation' => 'utf8_unicode_ci',
+
'prefix'    => '',
+
),
+
.....
+
</source>
+
-->
+
*Creamos un controlador
+
  
 +
;1.-Controlador
 
<source lang=php>
 
<source lang=php>
 
php artisan controller:make Tienda
 
php artisan controller:make Tienda
 
</source>
 
</source>
 +
;2.-Routes (web.php)
 +
*Ahora asociamos ese controlador a una ruta
 +
<source lang=php>
 +
Route::get('productos', 'Tienda@getProductos');
 +
</source>
 +
;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
 
Ahora editamos el fichero Tienda.php que tenemos en cotrollers y escribimos el código en el método getProductos
Línea 50: Línea 42:
 
</source>       
 
</source>       
  
*Ahora asociamos ese controlador a una ruta
 
<source lang=php>
 
Route::get('productos', 'Tienda@getProductos');
 
</source>
 
  
 
*Y lo último creamos la plantilla tienda
 
*Y lo último creamos la plantilla tienda
Línea 74: Línea 62:
 
</html>
 
</html>
 
</source>
 
</source>
 +
*Con esta clase podremos ejecutar consultas
 +
*El definir el fichero de configuración anterior nos permite conectar a la base de datos
 +
;Seleccionando
 +
<source lang=php>
 +
$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');
 +
</source>
 +
 +
*Si hay varias conexiones usaremos el método connection() para seleccionar una de ellas
 +
<source lang=php>
 +
$usuario = DB::connection('usuarios')->select(...);
 +
</source>
 +
{{Actividad|
 +
Haz un programa que muestre todos los productos que sean de tipo ORDENA}}

Última revisión de 00:37 14 mar 2019



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(...);


Icon activity.jpg

Actividad

Haz un programa que muestre todos los productos que sean de tipo ORDENA