2013-07-16 2 views
0

Я использую шаблон лезвия ларавеля, и у меня есть шаблон шаблона для всех моих страниц. В шаблоне мастера у меня есть верхняя панель и боковая панель. Я хочу загрузить что-то на боковой панели. Но я не знаю, как это делается проще. Теперь я звоню этот метод (который я хочу, чтобы отобразить на боковой панели) в каждом контроллере у меня есть, как это:Как загрузить метод в шаблоне основного лезвия?

View::make()->with('data_to_load_in_sidebar',$data_to_load_in_sidebar) 

Как я могу загрузить только один раз, а не каждый раз, когда я создать представление?

ответ

1

Это то, что посмотреть композитор для, любого вида, который загружается автоматически будет иметь это композитор работать параллельно обеспечивая представление с какими-либо дополнительными данными, которые могут потребоваться.

View::composer(array('partials.sidebar'), function($view) 
{ 
    $news = News::all(); 

    $view->with('news', $news); 
}); 

Я обычно положить это в моем routes.php файл в обоих L3 и L4.

В поле зрения views\partials\sidebar.blade.php у вас теперь всегда есть доступ к переменной $news, которая будет содержать все модели из коллекции новостей.

1

Я бы поделился верхним баром & данные боковой панели в конструкторе (желательно в некоторых конструкторах BaseController, которые расширяются другие контроллеры).

public function __construct() 
{ 
    // if needed, call parent's contructor method as well 
    parent::__construct() 

    $data_to_load_in_sidebar = loadDataForSidebar(); 
    View::share('data_to_load_in_sidebar',$data_to_load_in_sidebar) 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^