2015-04-30 18 views
5

Ho un'intestazione in ogni pagina, l'intestazione ha l'ID membro. Ho creato header.blade.php, e incluso nel default.blade.php, che è qualcosa di simile:Valore restituito all'intestazione in ogni pagina Laravel

default.blade.php

<header> 
    @include('includes.header') 
</header> 

ho bisogno di passare membro id controller.php-header.blade.php, questo è il problema. Come farlo?

+0

Eventuali tentativi, prove per mostrarci i vostri sforzi? –

+0

Hai provato ad estendere Blade? http://laravel.com/docs/4.2/templates#extending-blade – Philip

risposta

4

Suggerisco di utilizzare view composer. Ciò ti consentirà di definire/assegnare una variabile in un dato modello su qualsiasi richiesta. Per il bene della manifestazione, darò per scontato il vostro "id utente" è 5. Avresti bisogno di creare un fornitore di servizi, che ho copiato questo dalla documentazione:

<?php namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 

class ComposerServiceProvider extends ServiceProvider { 

    /** 
    * Register bindings in the container. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     // Using Closure based composers... 
     View::composer('includes.header', function($view) 
     { 
      return $view->with('memberId', 5); 
     }); 
    } 

    /** 
    * Register 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     // 
    } 

} 

Sarà necessario registrare questo fornitore di servizi in config/app.php. Una volta fatto, la variabile $memberId sarà disponibile nel modello di intestazione. {{ $memberId }}

+0

questo controller di visualizzazione è in app/controller? L'ho messo in app/controller, aggiunto config in config/app.php, refresh page, errore: qualcosa di sbagliato, log degli errori verificati ma nessun errore. btw, im using laravel 4.2 :) – hahahaha

+0

Questo approccio dovrebbe funzionare in 4.2. Tuttavia, puoi semplicemente copiare il codice dall'inizio, "View :: composer()", e inserirlo nel tuo route.php. Non ti servirà il resto del codice nell'esempio. –