Laravel
Laravel
Laravel
CONTEXTO DEL
PROYECTO
Se va a realizar una biblioteca virtual, se manejan
libros, autores, categoras, de momento la
entrada es libre por lo que no se requiere un
sistema de autentificacin.
Se tiene pensado que sea un sistema Web basado
en PHP para la conexin con la BD que ser
MySQL, tomando en cuenta las tecnologas que
imperan hoy en da se decidi utilizar el
framework Laravel que es alagado por su
potencia y facilidad de uso.
INSTALACIN DE LARAVEL
Levantamos servicios de
apache y mysql
Ante
Ante
ss
Despu
Despu
s
s
Configurar servidor
apache para que acepte
host virtuales
RUTA
ARCHIVO
Agregamos el dominio
virtual en el archivo de
virtual host
ARCHIVO
AGREGAD
O
URL
Instalamos composer
Establecemos ruta de
php, en este caso en
XAMPP
Pulsamos install
Instalamos composer en
nuestro proyecto
composer install
Levantamos el servidor
artisan
php artisan serve
BASICO
ESTRUCTURA
/app
/app/config Aqu se pueden se pueden encontrar todos los
archivos de configuracin de la aplicacin. Base datos,
cache, correos, sesiones o cualquier otra configuracin
general de la aplicacin.
/app/controller Contiene todos los archivos con las clases
de los controladores que sirven para interactuar con
los modelos, las vistas y manejar la lgica de la aplicacin.
/app/model Los modelos son clases que representan la
informacin (datos) de la aplicacin y las reglas para
manipularlos. En la mayora de los casos cada tabla de la
base datos esta representada con un modelo.
/app/views Este directorio contiene las plantillas de HTML
que usan los controladores para mostrar la informacin. Hay
que tener en cuenta que en esta carpeta no van los
Javascript, CSS o imgenes, ese tipo de archivos van
alojados en la carpeta/public.
/public
/public En ella se encuentra elindex.php. En
este directorio tambin se alojan los archivos CSS,
Javascript, imgenes y otros archivos que se
quieran hacer pblicos.
/vendor
En esta carpeta se alojan todas las libreras que
conforman el framework y sus dependencias.
/lang
En esta carpeta se guardan archivos PHP que
contienen los diferentes lenguajes, en caso que se
desee que la aplicacin se pueda traducir.
BASE DE DATOS
Diseo SQL
libros
ID
NOMBRE
GENERO
CONTENIDO
URL_IMG
URL_LIB
autores
BD:
biblioteca
autore_libro
ID
LIBRO_ID
AUTORE_ID
ID
NOMBRE
APELLIDOS
CREAMOS BD EN
NUESTRO GESTOR.
CONFIGURACIN DE LA BD EN
LARAVEL
Con la BD creada
editamos el
archivo:/app/config/datab
ase.php
1) MIGRACIONES
Cargamos la migracin a
la base de datos.
Revisamos nuestra BD
para ver si las tablas se
crearon correctamente.
2) MODELOS
Uno a Uno
Supongamos para nuestro caso que cada libro nicamente tiene un
autor.
Primero declaramos la relacin en el modelo que tiene algo, en este caso
un libro tiene un autor
Uno a Uno
Una vez que definimos el modelo que tiene algo en este caso
libro, el segundo paso ser definir el modelo que pertenece a
algo en este caso autor.
Uno a Uno
La forma de realizar una bsqueda de informacin
con esta relacin se muestra a continuacin:
$libro = Libro::find(1); //libro es un objeto de la
clase libro y contiene toda la informacin del libro
con id 1.
$autor = $libro->autor;
$autor contendr un objeto con toda la
informacin del autor del libro con id 1.
Uno a Muchos
Vamos a suponer que un libro puede tener muchos autores
(relacin uno a muchos), al igual que en el caso anterior
definimos el modelo que tiene muchos
Class Libro extends Eloquent{
Uno a muchos
Para realizar una bsqueda en este modelo:
$libro = Libro::find(1); //realizamos una busqueda
en el modelo libro del libro con id 1.
$autores = $libro->autores;
// Esto retorna un arreglo con los objetos de todas
los autores que tiene relacin con el libro 1
Uno a Muchos
La forma de definir el modelo pertenece a es igual que en la
relacin uno a uno, veamos nuevamente solo para recordarlo.
Muchos a Muchos
Para este ejemplo vamos a basarnos en nuestra base
de datos sql, tenemos 3 tablas libros, autores,
libro_autor.
Muchos a Muchos
Class Autore extends Eloquent{
Muchos a Muchos
En este caso hemos declarado la relacin de
los dos lados, para muchos a muchos se
utiliza la funcinbelongsToManyque recibe
4 parametros:
El primero es el otro modelo con el cual se
quiere hacer relacin.
El segundo es la tabla que contiene los ids
de los dos modelos y hace la unin.
El tercer y cuarto parmetro son los
nombres de los id que Laravel debe buscar
en la tabla intermedia para hacer la
relacin.
Muchos a Muchos
Uso de la relacin:
$autores = Libro::find(1)->autores;
// $autores va a contener un arreglo con todos
los autores que tiene el libro 1
$Libros = Autores::find(1)->Libros;
// $Libros va a contener un arreglo con todas
los libros que escribi el autor 1
Muchos a Muchos
INSERTAR DATOS:
$libro = Libro::find(1);
$libro->autores()->attach(5);
// Aqu estamos guardando en $libro la informacin
del libro numero 1
// luego mediante la relacin autores() llamamos a
la funcin attach()
// esta funcin recibe como parmetro el id del
autor que se relaciona con el libro 1
Muchos a Muchos
$libro = Libro::find(1);
$libro->autores()->detach(5);
// para borrar una relacin se utiliza la funcin
detach()
// en este caso borrara la relacin que tiene el libro
1
// con el autor 5
Almacenar informacin
Buscar un registro
Modificar un registro
Eliminar un registro
MODELOS
Elaboramos el modelo
dentro del archivo
libro.php
Elaboramos el modelo
dentro de autore.php
Definimos la relacin en
el modelo libro
Definimos la relacin en
el modelo autore
PRUEBA DE MODELOS
Routing bsico
Insertamos la ruta en el
navegador
Revisamos el estado de la
BD
nuevo registro
modificando la
informacin de nuestra
ruta
Ejecutamos la ruta y
verificamos la BD
Ejecutando ruta y
Comprobando en la BD