Sei sulla pagina 1di 10

LARAVEL RESUMEN

Para instalar Laravel, usando la consola/terminal vamos a la carpeta : C:/xampp/htdocs y all


escribimos:
cd /xampp/htdocs
composer create-project --prefer-dist laravel/laravel proyecto

Creamos el proyecto en eclipse, y ya vemos el sistema de carpetas de Laravel.

RUTAS
En routes > web.php, definimos las rutas que enlazan las vistas:
- Devolver texto (ejemplo):
Route::get('login', function () {
return 'Login usuario';
});
Route::get('catalog/edit/{id}', function () {
return 'Modificar pelcula '.$id;
});
- Devolver vista (ejemplos):
Route::get('/', function () {
return view('welcome');
});
- Llamar al controlador (ejemplo):
Route::get('/', 'HomeController@getHome');

Para ver un listado con todas las rutas que hemos definido en el fichero routes.php
ejecutamos:
cd proyecto
php artisan route:list

Descargamos o copiamos la carpeta de bootstrap (css, js y fonts) en public/assets/bootstrap. Y


la plantilla que vamos a seguir en resources/views/partials.
- Aadimos la palabra true a la lnea @if(true || Auth::check()) de la plantilla para mostrar
todas las opciones del men

LAYOUT
Creamos el fichero resources/views/layouts/master.blade.php. Le aadimos como contenido
lo que propone Bootstrap en http://getbootstrap.com/getting-started/#template":
- Cambiamos las rutas para la carga de los assets (css y js):
<link rel="stylesheet" type="text/css" href="{{ asset('assets/bootstrap/css/bootstrap.min.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/bootstrap/css/bootstrap.min.js') }}">
- Cambiamos el texto que viene h1 de ejemplo e introducimos la barra de navegacin:
@include('partials.navbar')
- Y a continuacin de esto aadimos la seccin principal donde aparecer el contenido:
<div class="container">
@yield('content')
</div>

VISTAS
Las vistas asociadas a cada ruta tendrn que extender del layout, todas tendrn este cdigo:
@extends('layouts.master')
@section('content')
Pantalla principal
@stop

Creamos una vista separada para todas las rutas excepto para "logout", que no tendr ninguna
vista, dentro de la carpeta resources/views.
Actualizamos las rutas del fichero routes/web.php para que se carguen las vistas. Acordarse de
que para referenciar las vistas que estn dentro de carpetas, la barra / de separacin se
transforma en un punto, y como segundo parmetro se pueden pasar datos a la vista:
return view('home');
Route::get('catalog/edit/{id}', function ($id) {
return view('catalog.edit', array('id' => $id));
});

CONTROLADORES
Hay que crearlos por consola con Artisan:
php artisan make:controller NombreDelControlador
Al aadir la opcin --plain le indicamos que no aada ningn mtodo al controlador, por lo que
el cuerpo de la clase estar vaco.
Aadimos los mtodos que redireccionaran a una URL u otra:
Y despus modificamos las rutas en el archivo routes/web.php para llamar al controlador
correspondiente:

COMPLETAR VISTAS/CONTROLADORES CON ARRAY


En el controlador catlogo en este caso, agregamos el array de productos y modificamos las
rutas para enviar tambin dicho array a las vistas:

Por tanto se cambia tambin la vista para mostrar los productos:

catalog/index
Para editar aadir justo debajo del form:
{{method_field('PUT')}}
<input type="hidden" name="_method" value="PUT"/>
{{-- TODO: Proteccin contra CSRF --}}
<input type="hidden" name="_token" value="{{ csrf_token() }}">

BASE DE DATOS
Lo primero es ir a config/database.php y modificar el nombre de la base de datos, usuario y
contrasea:

A continuacin abrimos PHPMyAdmin y creamos la nueva base de datos llamada videoclub.


Para comprobar que todo va bien, en el terminal (carpeta del proyecto) ejecutamos el
comando que crea la tabla de migraciones:
php artisan migrate:install
Si todo va bien podremos actualizar desde PHPMyAdmin y comprobar que se ha creado esta
tabla dentro de nuestra nueva base de datos.

Para crear una nueva migracin se utiliza:


php artisan make:migration create_movies_table --create=movies

Para aadir todos los campos a la tabla vamos al archivo creado en dabatase/migrations:
Ejecutamos el comando php artisan migrate y en PHPMyAdmin se habrn creado los campos
que hemos introducido.

MODELO DE DATOS
Para crear el modelo de datos asociado con la tabla movies se usa el comando de Artisan:
php artisan make:model Movies
No es necesario hacer ms.

SEMILLAS (rellanar la tabla con datos)


Creamos un mtodo seedCatalog() en database/seeds/DatabaseSeeder.php que llama a run.

El array de productos lo movemos a la semilla (copiar/pegar).


Ejecutamos el comando Artisan para rellenar de datos la BD:
php artisan db:seedpel
Si aparece el error "Fatal error: Class 'Movie' not found" es porque hay que indicar use
App\Movie; al inicio de la seeder.

ACTUALIZAR CONTROLADOR
Modificar los mtodos para que se obtenga la lista de productos de la BD y no del array:
Si aparece el error "Fatal error: Class 'Movie' not found" es porque hay que indicar use
App\Movie; al inicio del controlador.

ACTUALIZAR VISTAS
Actualizar las vistas para coger los datos del OBJETO pelcula $pelicula->campo.

LOGIN
Creamos una nueva migracin:
php artisan make:migration create_users_table --create=users

Para aadir todos los campos a la tabla vamos al archivo creado en dabatase/migrations. No
hara falta tocar nada:

Ejecutamos el comando php artisan migrate y en PHPMyAdmin se habrn creado los campos
que hemos introducido.

Creamos la seed para rellenar la tabla en DatabaseSeeder.php aadiendo el self::seedUsers en


la funcin run y el mtodo seedUsers() donde ponemos los datos de un usuario:
Ejecutamos el comando Artisan para rellenar de datos la BD:
php artisan db:seed
Si aparece el error "Fatal error: Class 'Movie' not found" es porque hay que indicar use
App\Movie; al inicio de la seeder.

AUTENTICACIN
En primer lugar ejecuta el comando de Artisan para generar todas las rutas y vistas necesarias
para el control de usuarios:
php artisan make:auth
A continuacin editar el fichero routes/web.php para quitar las lneas de login y logout.
Aadimos el MIDDLEWARE de tipo grupo que aplique el filtro auth para proteger todas las
rutas del catlogo (menos la raz / y las de autenticacin).

Modificar el controlador LoginController para que cuando se realice el login te redirija a la ruta
/catalog. Para esto tienes que modificar su propiedad redirectTo para aadir la ruta de
redireccin.
Modificar la vista de login generada por Laravel (login.blade.php) para que utilice nuestro
layout (master.blade.php).

En HomeController completar el mtodo getHome. Modificar el cdigo para que en caso de


que el usuario no est autenticado le redirija a la ruta /login.

Por ltimo editar la vista navbar.blade.php de la plantilla y cambiar la lnea @if( true ||
Auth::check() ) por @if(Auth::check()). De esta forma el men solo se mostrar cuando el
usuario est autenticado.

AADIR Y EDITAR
Aadir las rutas que hacen falta para recoger los datos al enviar los formularios. Para esto
editamos el fichero de rutas y aadimos (protegidas por el filtro auth):
- Una ruta de tipo POST para la url catalog/create que apuntar al mtodo postCreate
- Y otra ruta tipo PUT para la url catalog/edit/{id} que apuntar al mtodo putEdit
A continuacin vamos a editar la vista catalog/edit.blade.php:
Mtodo de envo del formulario sea tipo PUT.
Modificar todos los inputs para que como valor del campo ponga el valor correspondiente de
la pelcula. Ejemplo: value="{{$pelicula->title}}"

Actualizar el controlador CatalogController con los dos nuevos mtodos. En ambos casos
tenemos que usar la inyeccin de dependencias para aadir la clase Request como parmetro
de entrada.
Adems para cada mtodo haremos:
En el mtodo postCreate creamos una nueva instancia del modelo Movie, asignamos el valor
de todos los campos de entrada (title, year, director, poster y synopsis) y los guardamos. Por
ltimo, despus de guardar, hacemos una redireccin a la ruta /catalog.
En el mtodo putEdit buscamos la pelcula con el identificador pasado por parmetro,
actualizamos sus campos y los guardamos. Por ltimo realizamos una redireccin a la pantalla
con la vista detalle de la pelcula editada.
Adems cree el mtodo postRented para modificar el botn del estado alquilado de cada
producto (ltimo mtodo).

Potrebbero piacerti anche