laravel的視圖功能詳解

傳統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()-&gt;exists('v1'))?{ ????// }

向視圖傳遞數據

一般視圖中使用純html的情況時非常少了,經常需要向視圖傳遞參數。在laravel中,有幾種方法可以向視圖傳遞參數。可以在view函數中的第二個參數中傳遞一個關聯數組,這樣視圖就可以拿個該數據了,如下:

return?view('v1',?['name'?=&gt;?'laravel',?'act'?=&gt;?'study']);

在視圖中使用參數需要使用{{$key}}

<p>{{$act}}?{{$name}}</p>

還可以使用with方法來傳遞參數,該方法支持連貫操作

return?view('v1') ????-&gt;with(['name'?=&gt;?'laravel',?'act'?=&gt;?'study']) ????-&gt;with('title',?'php.cn');

所有視圖共享數據

在多個視圖內共享數據是一個常見的需求,可以在app/Providers/appServiceProvider中設置;

public?function?boot() { ????// ????view()-&gt;share('key',?'val'); }

視圖合成器與構造器

視圖合成器與構造器類似于php類中構造函數與析構函數,合成器是在視圖展示之前執行的一段業務邏輯,而構造器則是在視圖渲染完畢后執行的一段業務邏輯。

因為用到的不多,所以關于視圖的合成器和構造器這里就不演示如何操作了。有興趣的童鞋可以自行查詢文檔。

視圖的編譯文件

視圖文件是需要編譯的,編譯產生的文件保存在storage/framework/views文件下。默認情況下,視圖文件是按需編譯的,但編譯文件不存在或視圖文件做了修改時,視圖文件就會被重新編譯。但是,在獲取請求時編譯視圖文件會有性能影響。因此,laravel提供了一個工具,可以一次性編譯所有視圖文件。

php?artisan?view:cache

于此向對應的還有刪除所有視圖的編譯文件命令

php?artisan?view:clear

推薦教程:《laravel框架

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享