Plantillas BLADE

Publicado: 29 de julio de 2016 en Actualidad

Plantillas

Plantillas con Blade

Blade es un simple y potente motor de plantillas incorporado en Laravel. A diferencia de los layouts en controladores, Blade es gestionado por las herencias de plantillas y secciones. Todas las plantillas Blade deben usar la extensión .blade.php.

Definir un layout Blade

<!-- Almacenada en resources/views/layouts/master.blade.php --> <html> <body> @section('sidebar') Esta es la barra lateral principal (sidebar). @show 
@yield('content')
</body> </html>

Usando un layout Blade

@extends('layouts.master') @section('sidebar') @@parent <p>Esto se añade a la barra lateral principal</p> @stop @section('content') <p>Este es el contenido del cuerpo.</p> @stop 

Ten en cuenta en que las vistas que extienden de un layout en Blade simplemente sobre-escriben las secciones de éste. El contenido de un layout puede ser incluido en una vista hija utilizando la directiva @parent en una sección, permitiéndote así añadir contenidos extra a la sección del layout tales como una barra lateral o un pie.

En ocasiones, como cuando no estas seguro de si una sección ha sido o no definida, puedes pasar un valor por defecto a la directiva @yield. Puedes pasar el valor por defecto como segundo parámetro:

@yield('section', 'Default Content') 

Otras estructuras de control de Blade

Imprimir datos

Hello, {{ $name }}. The current UNIX timestamp is {{ time() }}. 

Imprimir datos después de comprobar su existencia

A veces puedes querer imprimir una variable pero no estar seguro de si la variable ha sido creada o no. Básicamente, quieres hacer esto:

{{ isset($name) ? $name : 'Default' }} 

Sin embargo, en lugar de escribir una operación ternaria en PHP, Blade permite el uso de la siguiente estructura:

{{ $name or 'Default' }} 

Mostrar texto sin formato

Si necesitas mostrar una cadena que se encuentra envuelta en las llaves que comúnmente utiliza Blade, puedes prevenir el comportamiento de éste anteponiendo el texto el símbolo @:

@{{ Esto no será procesado por Balde }} 

Si no deseas que los datos entre llaves sean pasados por alto por la plantilla puedes utilizar la siguiente sintáxis:

Hello, {!! $name !!}. 

Nota: Se muy cauteloso cuando imprimas contenido que ha sido proporcionado directamente por los usuarios de tu aplicación. Siempre utiliza la estructura de doble llave para escapar cualquier etiqueta HTML en el contenido.

If Statements

@if (count($records) === 1) I have one record! @elseif (count($records) > 1) I have multiple records! @else I don't have any records! @endif @unless (Auth::check()) You are not signed in. @endunless 

Bucles

@for ($i = 0; $i < 10; $i++) The current value is {{ $i }} @endfor @foreach ($users as $user) <p>This is user {{ $user->id }}</p> @endforeach @forelse($users as $user) <li>{{ $user->name }}</li> @empty <p>No users</p> @endforelse @while (true) <p>I'm looping forever.</p> @endwhile 

Incluir sub-vistas

@include('view.name') 

Además puedes pasar un array de información a la vista a incluir:

@include('view.name', ['some' => 'data']) 

Sobre-escribir secciones

Para sobrescribir completamente una sección, puedes utilizar el comando overwrite:

@extends('list.item.container') @section('list.item.content') <p>Este es un elemento del tipo {{ $item->type }}</p> @overwrite 

Imprimir líneas de idioma

@lang('language.line') @choice('language.line', 1) 

Comentarios

{{
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s