En son View::composer() ile yaptım, view tarafında ise sidebar.blade.html gibi bir dosya içinde döngüdeler, bunu da @include ile asıl şablona ekliyorum. Benim projemde bu sidebar sadece blog kısmında görüleceği için master templatesi yerine tüm blog dosyalarına tek tek include ediyorum. Ve, composer örneğim sadece parametre olarak aldığı blog view dosyalarında çalışıyor. Anasayfada çalışıp boşuna kaynak tüketmiyor.
// Blog widgets
View::composer(array('blog::index','blog::post','blog::category', 'blog::tag'), function($view)
{
// Category list
$category_list = Cache::remember('category-list', 10, function()
{
return BlogCategory::get();
});
// Latest posts
$latest_posts = Cache::remember('latest-posts', 10, function()
{
return BlogPost::with('category')
->publish()
->take(5)
->orderBy('created_at', 'DESC')
->get();
});
// Views
$view->with('category_list', $category_list);
$view->with('latest_posts', $latest_posts);
});