Serie LaravelPHP Base de Datos y ORM Eloquent Cap6

2
Capítulo 6: Base de Datos y ORM Eloquent @jlinformatico Hola estimados developers, en el anterior capítulo 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 configuración de base de datos de Laravel está en un archivo ubicado en app/config/database.php. Es fácil de recordar, ¿verdad? Abrimos el archivo y veamos algunas de las opciones de configuració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 diferente para cada tipo de base de datos. No obstante, si te fijas con detenimiento, descubrirás que cada una tiene un driver que puede ser usado para especificar el tipo de base de datos. Esto significa que podríamos tener fácilmente una matriz de conexiones MySQL diferentes, tal que así: ORM Eloquent En español las siglas ORM significan “Mapeo Objeto-Relacional” y es una técnica de programació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 podemos acceder a los registros de la base datos como si fueran objetos de PHP y no tener que ejecutar código SQL, increíble no?. Esto es posible porque cada tabla de la base datos es manejada por una clase en nuestro proyecto (modelos). Esta técnica también permite crear las relaciones como propiedades de los objetos y así por relacionarlos de una manera mas sencilla cuando se quieran

description

Base de Datos y ORM Eloquent basico

Transcript of Serie LaravelPHP Base de Datos y ORM Eloquent Cap6

Page 1: 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

Page 2: Serie LaravelPHP Base de Datos y ORM Eloquent Cap6

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