vistas plantillas plantilla para index gratis for descargar ciclo bootstrap laravel laravel-4 blade

plantillas - variables en blade laravel



¿Cómo paso una variable al diseño usando Laravel ''Blade? (9)

En la Plantilla de hoja: defina una variable como esta

@extends(''app'',[''title'' => ''Your Title Goes Here'']) @section(''content'')

Y en la aplicación.blade.php o cualquier otra opción (solo estoy siguiendo la configuración predeterminada de Laravel 5)

<title>{{ $title or ''Default title Information if not set explicitly'' }}</title>

Esta es mi primera respuesta aquí. Espero que funcione. ¡Buena suerte!

En Laravel 4, mi controlador usa un diseño Blade:

class PagesController extends BaseController { protected $layout = ''layouts.master''; }

El diseño maestro tiene salidas del título variable y luego muestra una vista:

... <title>{{ $title }}</title> ... @yield(''content'') ....

Sin embargo, en mi controlador solo parezco poder pasar variables a la subvista, no a la disposición. Por ejemplo, una acción podría ser:

public function index() { $this->layout->content = View::make(''pages/index'', array(''title'' => ''Home page'')); }

Esto solo pasará la variable $title a la sección de contenido de la vista. ¿Cómo puedo proporcionar esa variable a toda la vista, o al menos el diseño maestro?


La forma más simple de resolver:

view()->share(''title'', ''My Title Here'');

O usando view Facade:

use View; ... View::share(''title'', ''My Title Here'');


Para futuros Google''rs que usen Laravel 5, ahora también pueden usarlo con includes,

@include(''views.otherView'', [''variable'' => 1])


Parece que puedo pasar variables a todo el diseño utilizando atributos en el objeto de diseño; por ejemplo, para resolver mi problema, pude hacer lo siguiente:

$this->layout->title = ''Home page'';


Pude resolver ese problema agregando esto a mi método de controlador:

$title = ''My Title Here''; View::share(''title'', $title);

$ this-> layout-> title = ''Página de inicio''; tampoco funcionó.


Puedes probar:

public function index() { return View::make(''pages/index'', array(''title'' => ''Home page'')); }


Si usa @extends en su diseño de contenido, puede usar esto:

@extends(''master'', [''title'' => $title])


$data[''title''] = $this->layout->title = ''The Home Page''; $this->layout->content = View::make(''home'', $data);

He hecho esto hasta ahora porque lo necesitaba tanto en la vista como en el archivo maestro. Parece que si no usa $ this-> layout-> title no estará disponible en el diseño maestro. Mejoras bienvenidas!


class PagesController extends BaseController { protected $layout = ''layouts.master''; } public function index() { $this->layout->title = "Home page"; $this->layout->content = View::make(''pages/index''); }

En el archivo Blade Template, RECUERDE usar @ al frente de la variable.

... <title>{{ $title or '''' }}</title> ... @yield(''content'') ...