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

De WikiEducator
Saltar a: navegación, buscar
(La clase DB)
 
(5 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}}
 
{{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}}
 +
__NOTOC__
 
===Configurando y contectando a la base de datos===
 
===Configurando y contectando a la base de datos===
 
*Tocaremos el fichero /apt/database.php
 
*Tocaremos el fichero /apt/database.php
 
*En el especificaremos los parámetros de conexión para establecer conexión con la base de datos
 
*En el especificaremos los parámetros de conexión para establecer conexión con la base de datos
 
*Estos datos se especificarán como parámetros del array '''''mysql''''', como se puede ver en el ejemplo
 
*Estos datos se especificarán como parámetros del array '''''mysql''''', como se puede ver en el ejemplo
*El laravel 4 este fichero está en /app/config y en laravel 5 en /config
+
 
 
<source lang = php>
 
<source lang = php>
 
'mysql' => array(
 
'mysql' => array(
Línea 17: Línea 18:
 
)
 
)
 
</source>
 
</source>
===La clase DB===
+
===Gestionando la base de datos en el código===
*Con esta clase podremos ejecutar consultas
+
;Laravel presenta dos clases para poder trabajar con las bases de datos
*El definir el fichero de configuración anterior nos permite conectar a la base de datos
+
1.-Eloquent ORM<br />
;Seleccionando
+
2.-Query Builder con la clase DB<br />
<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}}
 
  
;Creamos la conexión de la base de datos
+
;Otras cuestines
<!--
+
*Si por ejemplo queremos borrar migraciones siendo que una tabla  está siendo referenciada por otras, una forma de hacerlo (no he conseguido especificar el orden en el cual quiero que se ejecuten las migraciones que sería lo propio), es anular la propiedad de las claves foráneas
*En el fichero '''''database.php '''''
+
 
<source lang=php>
 
<source lang=php>
.....
+
public function down()
  'tienda' => array(
+
    {
'driver'    => 'mysql',
+
        DB::statement('SET FOREIGN_KEY_CHECKS = 0');
'host'      => 'localhost',
+
        Schema::dropIfExists('empresas');
'database' => 'dwes',
+
        DB::statement('SET FOREIGN_KEY_CHECKS = 1');
'username'  => 'root',
+
    }
'password'  => 'root',
+
'charset'  => 'utf8',
+
'collation' => 'utf8_unicode_ci',
+
'prefix'    => '',
+
),
+
.....
+
 
</source>
 
</source>
-->
 
*Creamos un controlador
 
<!--
 
<source lang=php>
 
php artisan controller:make Tienda
 
</source>
 
 
Ahora editamos el fichero Tienda.php que tenemos en cotrollers y escribimos el código en el método getProductos
 
<source lang=php>
 
  public function getProductos(){
 
            $conexion = DB::connection('tienda')->select ('select nombre_corto '
 
                    . 'from productos where familia = ?', array('ORDENA'));
 
            View::make('productos', array('p' =>$p);
 
</source>     
 
-->
 
*Ahora asociamos ese controlador a una ruta
 
<!--
 
<source lang=php>
 
Route::get('productos', 'Tienda@getProductos');
 
</source>
 
-->
 
*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>
 
 
-->
 

Última revisión de 06:03 3 mar 2021




Configurando y contectando a la base de datos

  • Tocaremos el fichero /apt/database.php
  • En el especificaremos los parámetros de conexión para establecer conexión con la base de datos
  • Estos datos se especificarán como parámetros del array mysql, como se puede ver en el ejemplo
'mysql' => array(
			'driver'    => 'mysql',
			'host'      => 'localhost',
			'database'  => 'usuariosLaravel',
			'username'  => 'root',
			'password'  => 'root',
			'charset'   => 'utf8',
			'collation' => 'utf8_unicode_ci',
			'prefix'    => '',
		)

Gestionando la base de datos en el código

Laravel presenta dos clases para poder trabajar con las bases de datos

1.-Eloquent ORM
2.-Query Builder con la clase DB


Otras cuestines
  • Si por ejemplo queremos borrar migraciones siendo que una tabla está siendo referenciada por otras, una forma de hacerlo (no he conseguido especificar el orden en el cual quiero que se ejecuten las migraciones que sería lo propio), es anular la propiedad de las claves foráneas
public function down()
    {
        DB::statement('SET FOREIGN_KEY_CHECKS = 0');
        Schema::dropIfExists('empresas');
        DB::statement('SET FOREIGN_KEY_CHECKS = 1');
    }