傳統(tǒng)mvc模式,分為模型、控制器和視圖。視圖是用來(lái)存放html文件的,laravel的視圖文件存放在resources/views目錄下。下面來(lái)創(chuàng)建一個(gè)視頻
創(chuàng)建視圖
Route::get('/v1',?function?()?{ ????return?view('v1'); });
建立resources/views/v1.blade.php文件,內(nèi)容如下:
???? ????????<h1> ????????????hello?world ????????</h1> ????
子目錄視圖
對(duì)于子目錄的視圖,要使用.操作符來(lái)指定。比如,resources/views/home/index.blade.php,那么則需要
return?view(home.index);
判斷視圖是否存在
有時(shí)候需要判斷一個(gè)視圖是否存在,需要使用exists方法。如下:
if?(view()->exists('v1'))?{ ????// }
向視圖傳遞數(shù)據(jù)
一般視圖中使用純html的情況時(shí)非常少了,經(jīng)常需要向視圖傳遞參數(shù)。在laravel中,有幾種方法可以向視圖傳遞參數(shù)。可以在view函數(shù)中的第二個(gè)參數(shù)中傳遞一個(gè)關(guān)聯(lián)數(shù)組,這樣視圖就可以拿個(gè)該數(shù)據(jù)了,如下:
return?view('v1',?['name'?=>?'laravel',?'act'?=>?'study']);
在視圖中使用參數(shù)需要使用{{$key}}
<p>{{$act}}?{{$name}}</p>
還可以使用with方法來(lái)傳遞參數(shù),該方法支持連貫操作
return?view('v1') ????->with(['name'?=>?'laravel',?'act'?=>?'study']) ????->with('title',?'php.cn');
所有視圖共享數(shù)據(jù)
在多個(gè)視圖內(nèi)共享數(shù)據(jù)是一個(gè)常見(jiàn)的需求,可以在app/Providers/appServiceProvider中設(shè)置;
public?function?boot() { ????// ????view()->share('key',?'val'); }
視圖合成器與構(gòu)造器
視圖合成器與構(gòu)造器類似于php類中構(gòu)造函數(shù)與析構(gòu)函數(shù),合成器是在視圖展示之前執(zhí)行的一段業(yè)務(wù)邏輯,而構(gòu)造器則是在視圖渲染完畢后執(zhí)行的一段業(yè)務(wù)邏輯。
因?yàn)橛玫降牟欢啵躁P(guān)于視圖的合成器和構(gòu)造器這里就不演示如何操作了。有興趣的童鞋可以自行查詢文檔。
視圖的編譯文件
視圖文件是需要編譯的,編譯產(chǎn)生的文件保存在storage/framework/views文件下。默認(rèn)情況下,視圖文件是按需編譯的,但編譯文件不存在或視圖文件做了修改時(shí),視圖文件就會(huì)被重新編譯。但是,在獲取請(qǐng)求時(shí)編譯視圖文件會(huì)有性能影響。因此,laravel提供了一個(gè)工具,可以一次性編譯所有視圖文件。
php?artisan?view:cache
于此向?qū)?yīng)的還有刪除所有視圖的編譯文件命令
php?artisan?view:clear
推薦教程:《laravel框架》