2015-04-30 4 views
5

У меня есть заголовок на каждой странице, заголовок имеет идентификатор члена. Я создал header.blade.php, и включены в default.blade.php, что-то вроде этого:Возвращаемое значение для заголовка на каждой странице Laravel

default.blade.php

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

Мне нужно передать идентификатор участника от controller.php к header.blade.php, это проблема. Как это сделать?

+0

Любые попытки, испытания, чтобы показать нам ваши усилия? –

+0

Вы пытались расширить Blade? http://laravel.com/docs/4.2/templates#extending-blade – Philip

ответ

4

Предлагаю использовать view composer. Это позволит вам определить/назначить переменную в любой заданный шаблон для любого запроса. Ради демонстрации, я буду считать свой «ID пользователя» является 5. Вы должны были бы создать поставщик услуг, я скопировал это из документации:

<?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() 
    { 
     // 
    } 

} 

Вам нужно будет зарегистрировать его поставщика услуг в config/app.php. Как только вы это сделаете, переменная $memberId будет доступна в вашем шаблоне заголовка. {{ $memberId }}

+0

Этот контроллер просмотра находится в приложении/контроллерах? Я поместил его в приложение/контроллеры, добавил конфиг в config/app.php, обновил страницу, ошибку: что-то не так, проверил журнал ошибок, но ошибки не было. btw, im, используя laravel 4.2 :) – hahahaha

+0

Этот подход должен работать в 4.2. Тем не менее, вы можете просто скопировать код из загрузки, «View :: composer()» и поместить его в свой route.php. В этом примере вам не понадобится остальная часть кода. –