Académique Documents
Professionnel Documents
Culture Documents
soroF
golB
selai rotuT
Entrar
Contrasea
sosrs
u
C
elai rotutoediV
o registrate
Buscar..
cm
io
C
l a i ro t u t nu ac i l buP ?ba l a t s i rC se uQ
emi nA
Buscar
Qu quieres buscar?
Like
Test de
Mathmatiques
www.test-Math.com
Dcouvrez votre niveau en Maths. Faites
notre test de Mathmatiques.
25
Twittear
Para cerrar esta primera parte de los tutoriales quiero mostrarles cmo funcionan las vistas en Laravel. Este es
quizs el tutorial ms fcil de todos. Veremos cmo usar el sistema de plantillas de Laravel llamado Blade.
No te pierdas los anteriores tutoriales de Laravel:
introduccin a Laravel,
su instalacin,
Cmo configurar la base de datos y crear migraciones,
las rutas
y los controladores.
Banoicnuf m
o
c y se Q
u
Blade es bsicamente un sub-lenguaje muy sencillo, que antes de ser usado por nuestra aplicacin, es compilado a PHP plano. Para usar Blade, simplemente
creen sus plantillas en el directorio views/ con la extensin .blade.php en vez de .php.
Por ejemplo:
Cdigo :
views/template.blade.php
Ahora creen una ruta o controlador que llame a la plantilla (ya saben cmo, Cierto?)
En caso de que no En app/routes.php pongan esto:
Cdigo :
Route::get('template', function () {
return View::make('template');
});
<h1>Hello Cristalab</h1>
Bastante bsico, es decir, en este punto da igual si usamos Blade o no Pero, vamos a ver:
C
Ok, supongamos que, como en ejemplos anteriores, queremos usar un nombre variable:
Cdigo :
En este caso, para hacer el ejemplo ms interesante, lo pasamos por la ruta, y luego lo asignamos a la vista, con el mtodo ->with() que va concatenado a
View::make, fjense:
Cdigo :
View::make('template')->with('name', $name)
Ok, ahora en nuestra vista, si estuviramos usando slo PHP, tendramos que escribir algo as:
Cdigo :
Bsicamente: {{ }} es un sustituto de <?php ?> que por un lado es ms corto y fcil de escribir, por otro usar etiquetas PHP (<? ?>) se mezcla con las etiquetas
del HTML, as que usar motores como Blade es ms limpio por as decirlo.
Blade slo reemplaza {{ * }} por <?php echo * ?>, es decir, todo el cdigo PHP que quieras escribir es vlido dentro de {{ }}, por ejemplo:
Cdigo :
Otros motores de plantillas para PHP ms avanzados como Smarty o Twig compiladores ms poderosos, que permiten usar,
por ejemplo, sintaxis de punto para los arrays, la cual no es soportada por PHP, etc.
C
Por ltimo veremos cmo se escriben estructuras de control sencillas pero muy comunes como IF y FOREACH.
Blade tiene una sintaxis bien simple, por ejemplo:
Cdigo :
Nuevamente, todo lo que est dentro del parntesis del IF es PHP comn y corriente, lo que cambia es que en vez de escribir:
Cdigo :
O:
Cdigo :
Escribimos:
Cdigo :
@if (...)
http://localhost/pruebalaravel/public/template/walter+white
Esto es con respecto a la sintaxis, pero Blade tambin nos brinda una herramienta potente para escribir vistas:
varaL ne stuoyaL ed oU
s
Casi todos los proyectos, por no decir todos, tienen un layout que consiste, por lo general en un header + un footer. Por ejemplo fjense Cristalab.com Han
visitado esa pgina? Todas las pginas dentro del site cristalab.com llevan en la cabecera el logo de Cristalab + el men etc. y en el pie de pgina tiene el men
repetido y la foto de Freddier en un pony (bueno no, pero sera ms divertido).
Ese HTML que se repite en cada pgina se llama layout y en Blade podemos escribirlo as:
Creen una vista llamada:
Cdigo :
views/layout.blade.php
Cdigo :
<html lang="en">
<head>
<meta charset="utf-8">
<title>Aprendiendo Laravel</title>
</head>
<body>
@yield('content')
<hr />
Copyright 2013 - Todos los ponies reservados.
</body>
</html>
Cdigo :
@extends ('layout')
@section ('content')
<h1>Hello {{ $name }}</h1>
@stop
El PHP en nuestra ruta sigue igual, es decir, seguiremos invocando a template, no a layout:
Cdigo :
View::make(template)
Pero template a su vez extiende la plantilla layout, como si fuera un objeto hijo que extiende de un objeto padre:
Cdigo :
<!-- views/template.blade.php
@extends ('layout')
@yield('content')
Esa etiqueta de Blade permite definir una seccin dinmica que puede ser reemplazada en la plantilla hijo, en este caso template.blade.php usando las
etiquetas:
Cdigo :
@section ('content')
<!-- HTML AQUI -->
@stop
Fjense que content es el nombre de la seccin en ambas plantillas. Por supuesto podemos crear tantas secciones como queramos:
Cdigo :
En este caso el segundo parmetro de @yield sera el valor por defecto, es decir, si abrimos en el navegador nuestra direccin:
Cdigo :
http://localhost/pruebalaravel/public/template/cristalab
Seguiremos viendo en el ttulo del mismo la frase: Aprendiendo Laravel, que es nuestro ttulo por defecto.
Pero si cambiamos views/template.blade.php a:
Cdigo :
@extends ('layout')
@section ('title') Saludos a {{ $name }} @stop
@section ('content')
<h1>Hello {{ $name }}</h1>
@stop
Entonces el ttulo ahora ser, por ejemplo: Saludos a Cristalab. Tengan en cuenta que pueden crear tantas secciones como gusten, y que cada seccin puede
tener un valor por defecto y un valor distinto en cada sub-plantilla. Adems pueden usar variables, etc. en cada seccin.
Para finalizar, 2 tips:
1. En HTML, como ya deben saber, los comentarios se escriben as:
Cdigo :
Y suelen ser tiles cuando el HTML que escribimos es muy complicado, sin embargo dichos comentarios se envan al navegador junto con el resto de las
etiquetas, y esto no es siempre lo que queremos, dado que cualquiera podra leerlos y hacen el HTML un poco ms pesado, etc
Con Blade podemos escribir comentarios as:
Cdigo :
Cdigo :
Es posible usar PHP plano dentro de Blade, slo traten de mantener sus plantillas lo ms limpias posibles, limiten el uso de PHP, y si en tal caso lo necesitan,
escriban slo sentencias sencillas y preferiblemente al inicio de la plantilla.
Visiten la documentacin oficial para obtener ms ejemplos sobre Blade
Espero les haya gustado este tutorial, recuerden que todo esto se ir profundizando ms adelante, por ahora es slo un bosquejo para que se familiaricen con
todos estos conceptos
Stay tuned.
Envia un comentario (6)
Introduccin a Laravel
genial
oi ratm
no
ecut aci lbP
u
. . .sedeupo
Tu nombre:
Escribe tu nombre o nick
Tu comentario:
Cuentanos en detalle lo quieras opinar
Inicia sesin
Publicar
Blog
Ests registrado en
Cristalab y quieres
publicar tu URL y avatar?
S respetuoso. S detallado.
Foros
Tutoriales
Tutoriales de Flash
Ejemplos .fla
Anime
Videotutoriales
Cursos
No ests registrado an
pero quieres hacerlo antes
de publicar tu comentario?
Registrate
Curso de Flash
Curso de HTML
Tags