SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Laravel
¿Qué es Laravel?
➔ Es un framework de código abierto para el desarrollo de
aplicaciones web en PHP5 que posee una sintaxis
simple y elegante.
Características:
➔ Inspirado en Ruby and Rails y Symfony.
➔ Diseñado para desarrollar bajo el patrón MVC.
➔ Posee un sistema de mapeo de datos relacional
llamado Eloquent ORM.
➔ Utiliza un sistema de procesamiento de plantillas
llamado Blade, el cual hace uso de la cache para darle
mayor velocidad.
Estructura
/app – Contiene de la aplicación.
/public – Es la única carpeta a la que los usuarios de la
aplicación pueden acceder.
/vendor – En esta carpeta se alojan las librerías.
/app/lang – Archivos PHP con textos de diferentes
lenguajes.
/app/config – Configuración de la aplicación.
/app/controller – Clases de los controladores que sirven
para interactuar con los modelos, las vistas y manejar la
lógica de la aplicación.
/app/model – Los modelos son clases que representan los
datos de la aplicación y las reglas para manipularlos.
/app/views – Son plantillas HTML5 que usan los
controladores para mostrar la información.
Configurar Apache
➔ Es necesario activar el Laravel y desactivar el sitio por defecto.
Los comandos en Linux son:
➔ sudo su (clave 1)
➔ a2dissite 000-default.conf
➔ a2ensite laravel.conf
➔ /etc/init.d/apache2 restart
Finalmente, ingresar a http://localhost
Aparece el mensaje de bienvenida.
Configurar Base de Datos
Ahora que sabemos como esta estructurado el framework
vamos a crear y configurar nuestra base datos.
Abrimos el archivo /app/config/database.php y editamos los
campos de la conexión MySQL.
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => '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' => '',
Ejemplo:
Tabla Usuarios
-- Estructura de tabla para la tabla `usuarios`
CREATE TABLE `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`apellido` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ;
insert into usuarios values('','Juan','Arias','','');
insert into usuarios values('','Ana','Lopez','','');
Modelo
Para crear nuestro modelo de usuario debemos crear un archivo
llamado Usuario.php en la carpeta /app/models:
<?php
class Usuario extends Eloquent {
//Todos los modelos deben extender la clase Eloquent
protected $table = 'usuarios';
}
?>
➔ Laravel utiliza Eloquent ORM, que proporciona una manera
elegante de interactuar con la base de datos.
➔ Laravel asume que todas las tablas tienen 3 campos ‘id’
(clave primaria), ‘created_at’, ‘updated_at’.
Vista
La primera vista que vamos a crear será lista.blade.php en
/app/views/usuarios/.
Dentro de la carpeta: creamos el archivo lista.blade.php:
<h1> Usuarios </h1>
<ul>
@foreach($usuarios as $usuario)
<li>
{{ $usuario->nombre.' '.$usuario->apellido }}
</li>
@endforeach
</ul>
Controlador
Para unir el modelo y la vista creamos el tercer componente de
MVC, el controlador. Para esto en la carpeta de /app/controllers
creamos UsuariosController.php.
<?php
class UsuariosController extends BaseController {
/* Mustra la lista con todos los usuarios*/
public function mostrarUsuarios()
{
$usuarios = Usuario::all();
// Busca todos los registros de la tabla y los devuelva en un Array
return View::make('usuarios.lista', array('usuarios' => $usuarios));
// El método make View indica cual vista vamos a mostrar al usuario
} }
?>
Ruta
➔ Por último debemos crear una ruta.
➔ Es la manera que el framework nos brinda para poder
llegar hasta la acción y el controlador que queramos.
➔ Para crear la ruta abrimos el archivo /app/routes.php y
agregamos al final la siguiente línea de código.
Route::get('usuarios', array('uses' =>
'UsuariosController@mostrarUsuarios'));
Esquema.
¿Qué es Eloquent ORM?
➔ Es una técnica de programación que permite acceder a los
registros de la base datos como si fueran objetos de PHP y
no tener que ejecutar código SQL.
➔ Esto es posible porque cada tabla de la base datos es
manejada por una clase en nuestro proyecto (modelos).
➔ Permite crear las relaciones como propiedades de los
objetos y así por relacionarlos de una manera más sencilla.
➔ Permite cambiar el motor de base de datos en cualquier
momento y nuestro código continuará funcionando.
<?php
Class Carro Extends Eloquent {
protected $table = 'carros';
protected $fillable = array('modelo', 'placa', 'ano');
}
?>
Crear un Registro.
➔ Tenemos dos maneras.
➔ Una de ellas es haciendo uso de la función create(), la cual
recibe como parámetro un arreglo.
➔ Este método es común usarlo cuando estamos recibiendo la
información desde un formulario.
$input = array(
'modelo' =>'Honda Civic',
'placa' => 'HFU 88J',
'ano' => 2010
);
Carro::create($input);
// Equivalente a INSERT INTO `carros`(`id`, `modelo`, `placa`,
`ano`, `created_at`, `updated_at`).....
Crear un Registro
➔ La segunda manera es crear un objeto Carro con la
sentencia new, llenar las propiedades del objeto y luego
guardarlo con el método save().
$carro = new Carro;
$carro->modelo = 'Honda Civic';
$carro->placa = 'HFU 88J';
$carro->ano = 2010;
$carro->save();
// Equivalente a
// INSERT INTO `carros`(`id`, `modelo`, `placa`, `ano`,
`created_at`, `updated_at`)......
Buscar Registros
➔ Cuando necesitemos traer todos los registros podemos
hacer uso de la función all().
➔ Devuelve un arreglo con todos las columnas de todas las
filas que contenga la tabla que maneja el modelo.
$carros = Carro::all( );
foreach( $carros as $carro){
echo $carro->modelo;
}
// Equivalente a
// SELECT * FROM `carros` WHERE 1
Buscar 1 Registro.
Al igual que la función all(), podemos pasar un arreglo como
parámetro con los campos que queramos obtener.
<?php
$id = 1;
$carro = Carro::find( $id, array('placa') );
echo $carro->placa;
//Equivalente a
//SELECT placa FROM `carros` WHERE id = 1
Modificar Registro
Cuando necesitemos modificar un registro debemos primero
buscar con la función find(), modificar las propiedades con los
nuevos valores y por últimos llamar al método save().
<?php
$id = 1;
$carro = Carro::find( $id );
$carro->placa = 'MDY 00J';
$carro->save();
//Equivalente a
// SELECT * FROM `carros` WHERE id = 1
// UPDATE `carros` SET `placa`='MDY 00J',
updated_at`=NOW() // WHERE id = 1;
Borrar Registro Delete
➔ Para borrar también tenemos dos maneras.
➔ La primera es utilizando la función delete() con el objeto que
queremos borrar, de esta manera borramos un solo objeto.
<?php
$id = 1;
$carro = Carro::find( $id );
$carro->delete();
//Equivalente a
// SELECT * FROM `carros` WHERE id = 1
// DELETE FROM `carros` WHERE id = 1
Borrar Registro Destroy
➔ La segunda forma es haciendo uso de la función destroy, esta
recibe como parámetros un arreglo con los id de los objetos
que se deseen borrar de las base de datos.
➔ Con esta función si es posible borrar varios registros a la vez.
$arreglo = array(2, 3, 4, 7);
Carro::destroy($arreglo);
// Equivalente a
// DELETE FROM `carros` WHERE id = 2
// DELETE FROM `carros` WHERE id = 3
// DELETE FROM `carros` WHERE id = 4
// DELETE FROM `carros` WHERE id = 7
Idiomas en Aplicaciones
➔ Los textos van en la carpeta app/lang y dentro de esta
carpeta debe haber una carpeta por cada idioma.
/app
/lang
/en
textos.php
mensajes.php
/es
textos.php
mensajes.php
/fr
textos.php
mensajes.php
<?php
return array(
"bienvenido" => "Bienvenido",
"iniciar" => "Iniciar Sesión",
"cancelar" => "Cancelar",
);

Contenu connexe

Tendances

Introduccion a la programacion web
Introduccion a la programacion webIntroduccion a la programacion web
Introduccion a la programacion web
Robert Rodriguez
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
Miguel Miranda
 
Requisitos funcionales del sistema
Requisitos funcionales del sistemaRequisitos funcionales del sistema
Requisitos funcionales del sistema
fanyto
 

Tendances (20)

Principios del RUP
Principios del RUPPrincipios del RUP
Principios del RUP
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Arquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos OracleArquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos Oracle
 
Herramientas de Desarrollo de Software
Herramientas de Desarrollo de SoftwareHerramientas de Desarrollo de Software
Herramientas de Desarrollo de Software
 
Php ppt
Php pptPhp ppt
Php ppt
 
Framework
FrameworkFramework
Framework
 
Metodología ICONIX
Metodología ICONIXMetodología ICONIX
Metodología ICONIX
 
MYSQL
MYSQLMYSQL
MYSQL
 
Presentacion Joomla
Presentacion JoomlaPresentacion Joomla
Presentacion Joomla
 
Framework Laravel
Framework LaravelFramework Laravel
Framework Laravel
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
DB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL AvanzadoDB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL Avanzado
 
Introduccion a la programacion web
Introduccion a la programacion webIntroduccion a la programacion web
Introduccion a la programacion web
 
Linea del tiempo de los frameworks
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworks
 
201205 Arquitectura de Software
201205 Arquitectura de Software201205 Arquitectura de Software
201205 Arquitectura de Software
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Requisitos funcionales del sistema
Requisitos funcionales del sistemaRequisitos funcionales del sistema
Requisitos funcionales del sistema
 

En vedette

DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
Javier Condori Flores
 

En vedette (20)

Conociendo a Laravel, el Framework de PHP para artesanos de la web
Conociendo a Laravel, el Framework de PHP para artesanos de la webConociendo a Laravel, el Framework de PHP para artesanos de la web
Conociendo a Laravel, el Framework de PHP para artesanos de la web
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
 
01- instalacion de laravel 5+ (dos formas sencillas )
01- instalacion de laravel 5+ (dos formas sencillas )01- instalacion de laravel 5+ (dos formas sencillas )
01- instalacion de laravel 5+ (dos formas sencillas )
 
Andres Gutierrez
Andres GutierrezAndres Gutierrez
Andres Gutierrez
 
FRAMEWORD Yii
FRAMEWORD YiiFRAMEWORD Yii
FRAMEWORD Yii
 
Taller de laravel
Taller de laravelTaller de laravel
Taller de laravel
 
Yii inicios
Yii iniciosYii inicios
Yii inicios
 
Yii framework
Yii frameworkYii framework
Yii framework
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Apresentando o Yii Framework
Apresentando o Yii FrameworkApresentando o Yii Framework
Apresentando o Yii Framework
 
Yii framework
Yii frameworkYii framework
Yii framework
 
yii framework
yii frameworkyii framework
yii framework
 
Yii framework
Yii frameworkYii framework
Yii framework
 
MVC
MVCMVC
MVC
 
Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!
 
Presentación Framework CodeIgniter
Presentación Framework CodeIgniter Presentación Framework CodeIgniter
Presentación Framework CodeIgniter
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
 
Accessible Tourism for All by Naturefriends International
Accessible Tourism for All by Naturefriends International Accessible Tourism for All by Naturefriends International
Accessible Tourism for All by Naturefriends International
 

Similaire à 9.laravel

Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
dokeosla
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
uts
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
uts
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
uts
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
deivit86
 

Similaire à 9.laravel (20)

APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. Twig
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Doctrine2 sf2Vigo
Doctrine2 sf2VigoDoctrine2 sf2Vigo
Doctrine2 sf2Vigo
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Laravel 5.1
Laravel 5.1Laravel 5.1
Laravel 5.1
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Presentacion YII
Presentacion YIIPresentacion YII
Presentacion YII
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 

Plus de Ramiro Estigarribia Canese

Plus de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Dernier (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

9.laravel

  • 2. ¿Qué es Laravel? ➔ Es un framework de código abierto para el desarrollo de aplicaciones web en PHP5 que posee una sintaxis simple y elegante. Características: ➔ Inspirado en Ruby and Rails y Symfony. ➔ Diseñado para desarrollar bajo el patrón MVC. ➔ Posee un sistema de mapeo de datos relacional llamado Eloquent ORM. ➔ Utiliza un sistema de procesamiento de plantillas llamado Blade, el cual hace uso de la cache para darle mayor velocidad.
  • 3. Estructura /app – Contiene de la aplicación. /public – Es la única carpeta a la que los usuarios de la aplicación pueden acceder. /vendor – En esta carpeta se alojan las librerías. /app/lang – Archivos PHP con textos de diferentes lenguajes. /app/config – Configuración de la aplicación. /app/controller – Clases de los controladores que sirven para interactuar con los modelos, las vistas y manejar la lógica de la aplicación. /app/model – Los modelos son clases que representan los datos de la aplicación y las reglas para manipularlos. /app/views – Son plantillas HTML5 que usan los controladores para mostrar la información.
  • 4. Configurar Apache ➔ Es necesario activar el Laravel y desactivar el sitio por defecto. Los comandos en Linux son: ➔ sudo su (clave 1) ➔ a2dissite 000-default.conf ➔ a2ensite laravel.conf ➔ /etc/init.d/apache2 restart Finalmente, ingresar a http://localhost Aparece el mensaje de bienvenida.
  • 5. Configurar Base de Datos Ahora que sabemos como esta estructurado el framework vamos a crear y configurar nuestra base datos. Abrimos el archivo /app/config/database.php y editamos los campos de la conexión MySQL. 'connections' => array( 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => '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' => '',
  • 6. Ejemplo: Tabla Usuarios -- Estructura de tabla para la tabla `usuarios` CREATE TABLE `usuarios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL, `apellido` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ; insert into usuarios values('','Juan','Arias','',''); insert into usuarios values('','Ana','Lopez','','');
  • 7. Modelo Para crear nuestro modelo de usuario debemos crear un archivo llamado Usuario.php en la carpeta /app/models: <?php class Usuario extends Eloquent { //Todos los modelos deben extender la clase Eloquent protected $table = 'usuarios'; } ?> ➔ Laravel utiliza Eloquent ORM, que proporciona una manera elegante de interactuar con la base de datos. ➔ Laravel asume que todas las tablas tienen 3 campos ‘id’ (clave primaria), ‘created_at’, ‘updated_at’.
  • 8. Vista La primera vista que vamos a crear será lista.blade.php en /app/views/usuarios/. Dentro de la carpeta: creamos el archivo lista.blade.php: <h1> Usuarios </h1> <ul> @foreach($usuarios as $usuario) <li> {{ $usuario->nombre.' '.$usuario->apellido }} </li> @endforeach </ul>
  • 9. Controlador Para unir el modelo y la vista creamos el tercer componente de MVC, el controlador. Para esto en la carpeta de /app/controllers creamos UsuariosController.php. <?php class UsuariosController extends BaseController { /* Mustra la lista con todos los usuarios*/ public function mostrarUsuarios() { $usuarios = Usuario::all(); // Busca todos los registros de la tabla y los devuelva en un Array return View::make('usuarios.lista', array('usuarios' => $usuarios)); // El método make View indica cual vista vamos a mostrar al usuario } } ?>
  • 10. Ruta ➔ Por último debemos crear una ruta. ➔ Es la manera que el framework nos brinda para poder llegar hasta la acción y el controlador que queramos. ➔ Para crear la ruta abrimos el archivo /app/routes.php y agregamos al final la siguiente línea de código. Route::get('usuarios', array('uses' => 'UsuariosController@mostrarUsuarios'));
  • 12. ¿Qué es Eloquent ORM? ➔ Es una técnica de programación que permite acceder a los registros de la base datos como si fueran objetos de PHP y no tener que ejecutar código SQL. ➔ Esto es posible porque cada tabla de la base datos es manejada por una clase en nuestro proyecto (modelos). ➔ Permite crear las relaciones como propiedades de los objetos y así por relacionarlos de una manera más sencilla. ➔ Permite cambiar el motor de base de datos en cualquier momento y nuestro código continuará funcionando. <?php Class Carro Extends Eloquent { protected $table = 'carros'; protected $fillable = array('modelo', 'placa', 'ano'); } ?>
  • 13. Crear un Registro. ➔ Tenemos dos maneras. ➔ Una de ellas es haciendo uso de la función create(), la cual recibe como parámetro un arreglo. ➔ Este método es común usarlo cuando estamos recibiendo la información desde un formulario. $input = array( 'modelo' =>'Honda Civic', 'placa' => 'HFU 88J', 'ano' => 2010 ); Carro::create($input); // Equivalente a INSERT INTO `carros`(`id`, `modelo`, `placa`, `ano`, `created_at`, `updated_at`).....
  • 14. Crear un Registro ➔ La segunda manera es crear un objeto Carro con la sentencia new, llenar las propiedades del objeto y luego guardarlo con el método save(). $carro = new Carro; $carro->modelo = 'Honda Civic'; $carro->placa = 'HFU 88J'; $carro->ano = 2010; $carro->save(); // Equivalente a // INSERT INTO `carros`(`id`, `modelo`, `placa`, `ano`, `created_at`, `updated_at`)......
  • 15. Buscar Registros ➔ Cuando necesitemos traer todos los registros podemos hacer uso de la función all(). ➔ Devuelve un arreglo con todos las columnas de todas las filas que contenga la tabla que maneja el modelo. $carros = Carro::all( ); foreach( $carros as $carro){ echo $carro->modelo; } // Equivalente a // SELECT * FROM `carros` WHERE 1
  • 16. Buscar 1 Registro. Al igual que la función all(), podemos pasar un arreglo como parámetro con los campos que queramos obtener. <?php $id = 1; $carro = Carro::find( $id, array('placa') ); echo $carro->placa; //Equivalente a //SELECT placa FROM `carros` WHERE id = 1
  • 17. Modificar Registro Cuando necesitemos modificar un registro debemos primero buscar con la función find(), modificar las propiedades con los nuevos valores y por últimos llamar al método save(). <?php $id = 1; $carro = Carro::find( $id ); $carro->placa = 'MDY 00J'; $carro->save(); //Equivalente a // SELECT * FROM `carros` WHERE id = 1 // UPDATE `carros` SET `placa`='MDY 00J', updated_at`=NOW() // WHERE id = 1;
  • 18. Borrar Registro Delete ➔ Para borrar también tenemos dos maneras. ➔ La primera es utilizando la función delete() con el objeto que queremos borrar, de esta manera borramos un solo objeto. <?php $id = 1; $carro = Carro::find( $id ); $carro->delete(); //Equivalente a // SELECT * FROM `carros` WHERE id = 1 // DELETE FROM `carros` WHERE id = 1
  • 19. Borrar Registro Destroy ➔ La segunda forma es haciendo uso de la función destroy, esta recibe como parámetros un arreglo con los id de los objetos que se deseen borrar de las base de datos. ➔ Con esta función si es posible borrar varios registros a la vez. $arreglo = array(2, 3, 4, 7); Carro::destroy($arreglo); // Equivalente a // DELETE FROM `carros` WHERE id = 2 // DELETE FROM `carros` WHERE id = 3 // DELETE FROM `carros` WHERE id = 4 // DELETE FROM `carros` WHERE id = 7
  • 20. Idiomas en Aplicaciones ➔ Los textos van en la carpeta app/lang y dentro de esta carpeta debe haber una carpeta por cada idioma. /app /lang /en textos.php mensajes.php /es textos.php mensajes.php /fr textos.php mensajes.php <?php return array( "bienvenido" => "Bienvenido", "iniciar" => "Iniciar Sesión", "cancelar" => "Cancelar", );