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