摘要:創(chuàng)建,的引入運(yùn)行會(huì)自動(dòng)加載,在服務(wù)提供器或者新建提供器的方法中調(diào)用啟動(dòng)所有應(yīng)用服務(wù)也可使用共享數(shù)據(jù)片段視圖視圖合成器是當(dāng)視圖被渲染時(shí)的回調(diào)函數(shù)或類方法,如果你每次渲染視圖時(shí)都要綁定視圖的數(shù)據(jù),比如用戶登陸信息。
視圖間共享數(shù)據(jù)
視圖門面 share() 方法
視圖門面 composer() 方法
tips:都是使用 View 門面來(lái)訪問(wèn) IlluminateContractsViewFactory 的底層實(shí)現(xiàn)視圖share()
有時(shí)需要在所有視圖之間共享數(shù)據(jù)片段,這時(shí)候可以使用視圖門面的 share 方法。
1,一般情況下,我會(huì)在apphttpControllersxx下創(chuàng)建一個(gè)基礎(chǔ)控制器 BaseController.php,
initViewShare(); //視圖共享數(shù)據(jù) } /** * 視圖共享數(shù)據(jù)方法 */ public function initViewShare() { view()->share("action_name",get_action_name()); //當(dāng)前URL的方法器名 } } //視圖使用 //共享視圖一般都是在layout中 {{ $action_name }}
get_action_name() 是自定義的一個(gè)函數(shù)。tips:
創(chuàng)建 appHelpersExtmanFun.php , composer.json的autoload引入
"files":[ "app/Helpers/ExtmanFun.php" ]
運(yùn)行 composer dump-autoload 會(huì)自動(dòng)加載
2,在 AppServiceProvider 服務(wù)提供器(或者新建提供器) 的boot方法中調(diào)用share()
share("name","共享數(shù)據(jù)片段"); } }視圖composer()
視圖合成器是當(dāng)視圖被渲染時(shí)的 回調(diào)函數(shù) 或 類方法 ,如果你每次渲染視圖時(shí)都要綁定視圖的數(shù)據(jù),比如用戶登陸信息??梢允褂?b>composer() 將邏輯組織到一個(gè)多帶帶的地方。
本例中,我們將在AppServiceProvider服務(wù)提供器中注冊(cè)視圖合成器,
提供器代碼如下:
composer( //"*", "AppHttpViewComposersAuthComposer" //["extman.home, welcome"], "AppHttpViewComposersAuthComposer" ["extman.*"], "AppHttpViewComposersAuthComposer" ); //使用基于回調(diào)函數(shù) view()->composer("*",function($view){ $view->with("user",array("name"=>"test","avatar"=>"/path/to/test.jpg")); }); } other code }
如果創(chuàng)建一個(gè)新的服務(wù)提供器來(lái)包含視圖composer 注冊(cè),需要添加該服務(wù)提供者到配置文件 config/app.php 的 providers 數(shù)組中
到此已經(jīng)注冊(cè)了視圖合成器,每次渲染 extman目錄下所有視圖時(shí)都會(huì)執(zhí)行 AuthComposer@compose 方法。
定義視圖合成器類 AppHttpViewComposersAuthComposer.php
users = $users; } //綁定數(shù)據(jù)到視圖 public function compose(View $view) { $user_info = Auth::user(); $view->with("motto", $user_info); $view->with("count", $this->users->count()); } }
視圖被渲染前,AuthComposer類的 compose 方法被調(diào)用,同時(shí) IlluminateViewView 實(shí)例被注入該方法,從而可以使用其 with 方法來(lái)綁定數(shù)據(jù)到視圖。
所有的視圖合成器都會(huì)通過(guò) 服務(wù)容器 進(jìn)行解析,所以你可以在視圖合成器的構(gòu)造函數(shù)中類型提示需要注入的依賴項(xiàng)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30764.html
摘要:最后一定一定要記住要把組件寫在一個(gè)為的中否則永遠(yuǎn)無(wú)法渲染哦這是大坑坑了我一宿最后打包打包成功后切記刷新有時(shí)候這里也是大坑緩存根本不出最后刷新頁(yè)面組件渲染成功 首先安裝laravel集成環(huán)境,不在多余贅述,直接開(kāi)始配置1.打開(kāi)layout目錄,這里是視圖層公用文件,名字隨便起,只要你能引入到非公用視圖文件中就好,我這里拿main.blade.php為例showImg(https://se...
摘要:新增一篇新聞新增失敗輸入不符合要求請(qǐng)輸入標(biāo)題請(qǐng)輸入內(nèi)容新增文章上面代碼中的是為了防攻擊的,每個(gè)表單都必須存在。 本文我將結(jié)合簡(jiǎn)單例子,完成laravel框架下的增刪改查,希望會(huì)對(duì)大家有所幫助。在進(jìn)行之前,大家應(yīng)該保證自己的數(shù)據(jù)庫(kù)鏈接無(wú)誤,artisan命令能正常使用,路由鏈接無(wú)問(wèn)題。 一、創(chuàng)建控制器、路由避免影響其他路由,我們先注釋掉之前聯(lián)系時(shí)編寫的所有路由。因?yàn)樯弦徽挛覀円呀?jīng)學(xué)會(huì)建立...
摘要:正在開(kāi)發(fā)的另一種測(cè)試方法是將電子郵件呈現(xiàn)給瀏覽器,以便您可以進(jìn)行快速更改并獲得幾乎即時(shí)的反饋。 這個(gè)是即將在Laravel5.5中發(fā)布的新特性 當(dāng)您構(gòu)建自定義HTML電子郵件模板時(shí),通常會(huì)對(duì)所有電子郵件客戶端進(jìn)行測(cè)試,并一并測(cè)試通常是一件麻煩事。有幾個(gè)像Litmus這樣的工具可以幫助解決這個(gè)問(wèn)題,但服務(wù)是昂貴的。 正在開(kāi)發(fā)的另一種測(cè)試方法是將電子郵件呈現(xiàn)給瀏覽器,以便您可以進(jìn)行快速更改...
摘要:完成簡(jiǎn)單的在這篇文章中,我想和大家分享如何在框架中使用來(lái)創(chuàng)建應(yīng)用程序。在這個(gè)例子中,您可以學(xué)習(xí)如何為應(yīng)用程序構(gòu)建設(shè)置,我還使用請(qǐng)求,獲取請(qǐng)求,放入請(qǐng)求和刪除請(qǐng)求來(lái)插入更新刪除應(yīng)用程序。 laravel5.5 + react完成簡(jiǎn)單的CRUD 在這篇文章中,我想和大家分享如何在PHP Laravel框架中使用js來(lái)創(chuàng)建crud(Create Read Update Delete)應(yīng)用程序...
摘要:打開(kāi)瀏覽器輸入,如無(wú)意外,將出現(xiàn)如下圖,表示框架安裝成功。四系統(tǒng)內(nèi)部后臺(tái)管理系統(tǒng)這個(gè)是框架自帶的后臺(tái)登錄管理系統(tǒng),只需要簡(jiǎn)單的命令即可運(yùn)行。出現(xiàn)上圖即為,創(chuàng)建模型成功。 在PHP個(gè)各種web開(kāi)發(fā)框架中,laravel算是一款簡(jiǎn)潔、優(yōu)雅的開(kāi)發(fā)框架,本人也剛剛接觸到laravel,通過(guò)學(xué)習(xí)大神們的一些文章,下面是我的一些心得體會(huì),希望可以給初學(xué)者一些幫助,大家一起進(jìn)步。言歸正傳: 本人環(huán)境...
閱讀 931·2021-11-08 13:22
閱讀 2856·2021-09-29 09:45
閱讀 2835·2021-09-09 11:52
閱讀 2269·2019-08-30 13:20
閱讀 3751·2019-08-29 13:28
閱讀 1372·2019-08-29 12:32
閱讀 2732·2019-08-29 11:10
閱讀 1653·2019-08-26 13:34