Serie LaravelPHP Base de Datos y ORM Eloquent Cap6
-
Upload
jorge-antonio-linares-vera -
Category
Documents
-
view
9 -
download
0
description
Transcript of Serie LaravelPHP Base de Datos y ORM Eloquent Cap6
Capítulo 6: Base de Datos y ORM Eloquent@jlinformatico
Hola estimados developers, en el anterior capítulo hablamos sobre el sistema deplantillas Blade en nuestro primer proyecto Laravel 4, puedes verlo en el siguienteenlace:http://blog.devacademy.la/post/97340562326/tutorial-laravel-blade-sistema-de-plantillas-en
Ahora vamos a configurar nuestra base de datos y comenzar a interactuar con el ORMEloquent de Laravel 4, seguimos con nuestro proyecto devacademy-laravel,emocionad@?!!, continuemos.
Configurando nuestra Base de Datos
Toda la configuración de base de datos de Laravel está en un archivo ubicado enapp/config/database.php.
Es fácil de recordar, ¿verdad? Abrimos el archivo y veamos algunas de las opciones deconfiguración 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 más fácil empezar.Ahora, mirando a la matriz de arriba, puedes pensar que tenemos un índice diferentepara cada tipo de base de datos. No obstante, si te fijas con detenimiento, descubrirásque cada una tiene un driver que puede ser usado para especificar el tipo de base dedatos. Esto significa que podríamos tener fácilmente una matriz de conexiones MySQLdiferentes, tal que así:
ORM Eloquent
En español las siglas ORM significan “Mapeo Objeto-Relacional” y es una técnica deprogramación que el caso de Laravel se aplica con la clase llamada Eloquent.
Ahora veamos que significa esto en castellano, cuando aplicamos esta técnica podemosacceder a los registros de la base datos como si fueran objetos de PHP y no tener queejecutar código SQL, increíble no?.
Esto es posible porque cada tabla de la base datos es manejada por una clase en nuestroproyecto (modelos). Esta técnica también permite crear las relaciones como propiedadesde 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 porqueal tratar con objetos y no con la base de datos directamente podemos cambiar el motorde base de datos en cualquier momento (mysql, mariadb, postgresql, sqlite, mongodb,redis) y nuestro código continuará funcionando sin ningún problema.
Constructor del Esquema
La base de datos no es exactamente un almacén 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 capítulo sobre SQL por lo que espero que entiendas el concepto de tablade una base de datos y sus columnas. Vamos a echar un vistazo a la clase Schema, quepodemos usar para definir la estructura de nuestras tablas. No vamos a almacenarningún dato en este capítulo, por lo que asegúrate de que tienes estructuras en mente, yno datos.
Para crear una tabla, tenemos que usar el método create() de la clase Schema. He aquíun ejemplo.
El método Schema::create() acepta dos parámetros. El primero es el nombre de la tablaque queremos crear. En este caso, estamos creando una tabla llamada usuarios. Si latabla que estamos creando será usada para almacenar datos representando un tipo deobjeto, deberíamos nombrar la tabla en minúsculas con el plural del objeto. Lascolumnas de la base de datos y tablas son nombradas normalmente usando nombres enminúsculas, en el que los espacios son reemplazados con guiones bajos (_) y todos loscaracteres son en minúsculas.
El segundo parámetro al método es una closure, con un único parámetro. En el ejemplode arriba hemos llamado al parámetro $tabla, pero puedes llamarlo como quieras. Elparámetro $tabla puede ser usado para crear la estructura de la tabla. Añadamos una clave primaria autoincremental a nuestra tabla, de esta forma, las filas denuestra tabla pueden ser identificadas por un índice único.
El método increments() está disponible en nuestra instancia de $tabla para crear unanueva columna autoincremental. Una columna autoincremental será rellenadaautomáticamente con un valor entero que incrementa con cada fila que se añada.Comenzará en uno. Veamos
En el proximo capítulo aprenderás sobre los modelos y relaciones en ORM Eloquent
Saludos!By @jlinformatico