You are on page 1of 2

Captulo 6: Base de Datos y ORM Eloquent

@jlinformatico
Hola estimados developers, en el anterior captulo hablamos sobre el sistema de
plantillas Blade en nuestro primer proyecto Laravel 4, puedes verlo en el siguiente
enlace:
http://blog.devacademy.la/post/97340562326/tutorial-laravel-blade-sistema-de-plantilla
s-en
Ahora vamos a configurar nuestra base de datos y comenzar a interactuar con el ORM
Eloquent de Laravel 4, seguimos con nuestro proyecto devacademy-laravel,
emocionad@?!!, continuemos.
Configurando nuestra Base de Datos
Toda la configuracin de base de datos de Laravel est en un archivo ubicado en
app/config/database.php.
Es fcil de recordar, verdad? Abrimos el archivo y veamos algunas de las opciones de
configuracin disponibles.
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'devacademy-laravel',// Nombre de la base de datos
'username' => 'root', // Usuario de la base de datos
'password' => ' ', // Clave del usuario
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ' ',
)
)
Es una lista enorme de conexiones por defecto. Eso hace que sea ms fcil empezar.
Ahora, mirando a la matriz de arriba, puedes pensar que tenemos un ndice diferente
para cada tipo de base de datos. No obstante, si te fijas con detenimiento, descubrirs
que cada una tiene un driver que puede ser usado para especificar el tipo de base de
datos. Esto significa que podramos tener fcilmente una matriz de conexiones MySQL
diferentes, tal que as:
ORM Eloquent
En espaol las siglas ORM significan Mapeo Objeto-Relacional y es una tcnica de
programacin que el caso de Laravel se aplica con la clase llamada Eloquent.
Ahora veamos que significa esto en castellano, cuando aplicamos esta tcnica podemos
acceder a los registros de la base datos como si fueran objetos de PHP y no tener que
ejecutar cdigo SQL, increble no?.
Esto es posible porque cada tabla de la base datos es manejada por una clase en nuestro
proyecto (modelos). Esta tcnica tambin permite crear las relaciones como propiedades
de los objetos y as por relacionarlos de una manera mas sencilla cuando se quieran

realizar operaciones sobre ellos.


Por ultimo esto nos permite independizarnos de una base de datos en especifico porque
al tratar con objetos y no con la base de datos directamente podemos cambiar el motor
de base de datos en cualquier momento (mysql, mariadb, postgresql, sqlite, mongodb,
redis) y nuestro cdigo continuar funcionando sin ningn problema.
Constructor del Esquema
La base de datos no es exactamente un almacn clave-valor. En la base de datos,
nuestros datos pueden tener estructura, tener distintos tipos, y tener relaciones.
Para poder almacenar datos estructurados, primero tenemos que definir la estructura.
Este no es un captulo sobre SQL por lo que espero que entiendas el concepto de tabla
de una base de datos y sus columnas. Vamos a echar un vistazo a la clase Schema, que
podemos usar para definir la estructura de nuestras tablas. No vamos a almacenar
ningn dato en este captulo, por lo que asegrate de que tienes estructuras en mente, y
no datos.
Para crear una tabla, tenemos que usar el mtodo create() de la clase Schema. He aqu
un ejemplo.
El mtodo Schema::create() acepta dos parmetros. El primero es el nombre de la tabla
que queremos crear. En este caso, estamos creando una tabla llamada usuarios. Si la
tabla que estamos creando ser usada para almacenar datos representando un tipo de
objeto, deberamos nombrar la tabla en minsculas con el plural del objeto. Las
columnas de la base de datos y tablas son nombradas normalmente usando nombres en
minsculas, en el que los espacios son reemplazados con guiones bajos (_) y todos los
caracteres son en minsculas.
El segundo parmetro al mtodo es una closure, con un nico parmetro. En el ejemplo
de arriba hemos llamado al parmetro $tabla, pero puedes llamarlo como quieras. El
parmetro $tabla puede ser usado para crear la estructura de la tabla.
Aadamos una clave primaria autoincremental a nuestra tabla, de esta forma, las filas de
nuestra tabla pueden ser identificadas por un ndice nico.
El mtodo increments() est disponible en nuestra instancia de $tabla para crear una
nueva columna autoincremental. Una columna autoincremental ser rellenada
automticamente con un valor entero que incrementa con cada fila que se aada.
Comenzar en uno. Veamos
En el proximo captulo aprenders sobre los modelos y relaciones en ORM Eloquent
Saludos!
By @jlinformatico

You might also like