Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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:
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:
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.
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.
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).
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).