一、場(chǎng)景:
在一個(gè)公共視圖中有一側(cè)邊欄的數(shù)據(jù)。每個(gè)頁(yè)面都需要展示。不能在每一個(gè)展示頁(yè)面都獲取數(shù)據(jù)來(lái)渲染一次。
二、解決辦法:
語(yǔ)法:
View::composer('模板地址',function($view){
//實(shí)現(xiàn)的邏輯
});
加載模板的時(shí)候都會(huì)執(zhí)行右邊的函數(shù)
位置:
一般放在App\Providers\AppServiceProvider中;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*注冊(cè)完之后調(diào)用
* @return void
*/
public function boot()
{
//mb4String 767/4
Schema::defaultStringLength(191);
//視圖合成器 注入專題數(shù)據(jù)
\View::composer('layouts.sidebar',function($view){
$topics = \App\Http\Model\Topic::all();
$view->with('topics',$topics);
});
}
/**
* Register any application services.
*注冊(cè)前調(diào)用
* @return void
*/
public function register()
{
//
}
}