Laravel視圖合成器

一、場(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()
    {
        //
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容