Usuario:ManuelRomero/Laravel/view

Modificando la página por defecto
Lo podemos modificar por lo que queremos que aparezca
 * Hemos visto como modificar el contenido de la información que aparece por defecto en la página inicial
 * Si abrimos el fichero app/Http/routes.php vemos
 * A continuación vamos a crear otras páginas como el el ejemplo siguiente
 * 1) Home page
 * 2) About page
 * 3) Contact page
 * Típicas páginas que podemos encontrar en cualquier sitio web
 * Lo primero que haremos será modificar nuestro fichero de route.php
 * Vemos como efectivamente si accedemos a cada una de las páginas vemos cada uno de los sitios
 * 1) localhost:8000/
 * 2) localhost:8000/contact
 * 3) localhost:8000/about

Diseño de plantillas
https://laravel.com/docs/5.8/blade


 * Vamos a usar las plantillas para crear cada uno de las páginas
 * Laravel usa Blade como gestor de plantillas, un sencillo sistema que permite implementar la filosofía de MVC en laravel como podremos comprobar en breve.
 * Los ficheros que son plantillas en larevel tienen los siguientes requisitos
 * 1) terminan por la extensión ''blade.php' (nombre.blade.php)
 * 2) Están ubicados en resources/views
 * Características de las plantillas.

Herencia de Plantillas

 * Creamos una plantilla modelo
 * Estableceremos contenidos que queremos que aparezcan en todas las plantillas del proyecto
 * Estableceremos secciones donde queremos que aparezcan contenidos específicos
 * Es un diseño de contenidos, no de estilo.
 * Creamos plantillas extendiendo de la plantilla modelo
 * Estas son las que realmente se verán
 * Heredarán todo lo establecido en el modelo
 * añadiremos contenidos propios de cada plantilla

Secciones
@section('etiqueta') crea una sección de contenido identificada con una etiqueta. @yield('etiqueta') incluye el contenido de una sección referenciada.
 * Directivas

Con esta directiva le decimos que en esta posición se puede añadir un contenido especificado en otra página o plantilla que use ésta como base. El contenido que se añada debería de ir con Establece una sección con un contenido para incluirse final de una sección.
 * Como ya sabemos las plantillas son ficheros que contienen código html.
 * Ademas añadirá unas directivas especiales que nos permitirán poder incorporar información que venga de otro origen (de un controlador por ejemplo), o usar estructuras de control para evaluar determinadas situaciones.
 * Iremos viéndolo según vayamos avanzando.
 * Existen dos tipos de caracteres especiales
 * Al igual que Smarty, en este caso es para incluir valores que vendrán de un fichero de ejecución o bien estructuras de control.
 * @ le sigue una palabra especial que tiene un significado concreto dentro de blade
 * vamos a analizar y probar alguno de ellos
 * @yield ('etiqueta');
 * @section ('etiqueta')
 * @stop

Establece una herencia, es decir que se incluya la plantilla de la que extienda, la cual se especifica como parámetro en esta directiva Imagen:plantillaBlade.png
 * @extends (plantilla)
 * Estructuras de control también con @
 * Seleccion
 * iteraciones
 * Vemos como para especificar un valor usarmos las llaves dobles

Seguimos con el ejemplo
Esta sería una página general. supongamos que qeremos que nos aparezca esta información en todas las páginas, pero en cada una de ella queremos añadir más cosas. Para ello suarmeos una etiqueta de blade llamada yield. Las directivas o etiquetas en laravel se añaden usando la arroba @, por lo que añadimos el siguiente campo justo al final del fichero
 * Vamos a crear una plantilla que llameremos layout. Para ello creamos en resource/view el fichero layout.blade.php con el siguiente contenido
 * Le estamos especificando a laravel que justo ahí añada un contenido, que según la página que hayamos seleccionado será uno u otro.
 * Vamos a hacerlo para cada una de las páginas. Por lo tanto tendremos que crear tres plantillas. Recordamos que se hace en le directorio app/view, y que tienes que tener la extensión .blade.php

Creando contenido para plantillas
Creamos el contenido de la página principal
 * home.blade.php
 * Vemos que hemos usado tres directivas que comentamos
 * @extends
 * Especifiamos el nombre del layout o plantilla al que va a completar esta plantilla. Es decir esta plantilla va a ser incluida en la plantilla layout, el la cual debe de haber un contenido.
 * El nombre que aquí incluyamos debe coincidir con algúna plantilla creada
 * @section
 * Aquí especificamos el nombre especificado en la plantilla principal en donde queremos que aparezca el contenido de esta plantilla actual. Es decir el nombre que en la plantilla princial aparece el la directiva @yield
 * Todo el código que aparezca entre @seciont y @stop, será incorporado en la plantilla principal, donde aparezca @yield(contenido)
 * @stop
 * Teminamos de escribir el fichero y lo probamos
 * De la misma manera creamos la plantilla about.blade.php
 * Ahora vamos a crear una plantilla mas interesante, una página de contactos, vamos a ver lo tremendamente sencillo que es con laravel

Construyendo formularios
http://slick.pl/kb/laravel/classes-form-and-html-not-found-in-laravel-5/ Form::label('email', 'E-Mail Address'); En este caso con un valor por defecto echo Form::text('email', 'example@gmail.com'); Form::password('password'); Form::number('name', 'value'); Form::select('size', array('L' => 'Large', 'S' => 'Small')); Con rango de valores Form::selectRange('number', 10, 20);
 * En la versión 5 de laravel no carga los formularios por defecto. Hay que especificarlo
 * En la siguiente url podemos ver como hacerlo
 * Primero de todo es crear el formulario. En Laravel
 * A la hora de añadir elementos como hemos visto antes, el nombre especificado será el usado para poder recuperar información en un momento dado.
 * label
 * text
 * Password
 * Número
 * select


 * checkbox
 * radio
 * Botones

Añadiendo validaciones al formulario
$validator = Validator::make($data, $rules); if($validator->fails) { return Redirect::to('contact')->withErrors($validator)->withInput; }
 * A continuación aplicamos reglas para validar los campos, en este caso le decimos que los campos son obligatorios. Estas reglas las guardamos de nuevo en un array asociativo que creamos llamados $rules
 * Y ahora solo queda llamar a la funcion de validar y le pasamos los datos que queremos que valide y las reglas que queremos que aplique
 * Esta funcion nos devuelve un booleano que solo nos queda de valorar