視圖
到目前為止,我們已經(jīng)接觸了一些路由閉包库说,并看到了return view('account')的一些內(nèi)容藏斩,對(duì)于MVC模式來說,視圖或模般指的是用于描述某些特定輸出應(yīng)該是什么樣的文件菇存,在Web框架中最常見的視圖是用html進(jìn)行輸出的
在Laravel中夸研,有兩種視圖可以使用,分別為PHP和Blade模板依鸥,兩種視圖的區(qū)別在于亥至,使用PHP引擎進(jìn)行處理的文件名形式一般為about.php,而用Blade引擎進(jìn)行處理的文件名形式一般為about.blade.php
返回視圖有三種不同的方法贱迟,第一種是直接使用view()加載姐扮,第二種是用View::make()加載,第三種是用注入Illuminate\View\View Factory 的方式實(shí)現(xiàn)視圖的加載
-
樣例
-
不傳參數(shù)
Route::get('/', function() { return view('welcome'); });
此代碼可以在resource/views/welcome.php中或resoure/views/welcome.blade.php中查找視圖衣吠,加載其內(nèi)容茶敏,以及解析任何內(nèi)聯(lián)PHP或控件結(jié)構(gòu),直到有視圖的輸出缚俏。一旦返回它惊搏,它將被傳遞到響應(yīng)棧的其余部分贮乳,并且最終被返回給用戶
-
傳參數(shù)
Route::get('tasks', function() { return view('tasks.index')->with('tasks', Task::all()); });
這個(gè)閉包加載resource/views/tasks/index.php或resource/views/tasks/index.blade.php,同時(shí)會(huì)傳遞一個(gè)名為tasks的單個(gè)變量給視圖恬惯,該變量包含Task::all()方法所返回的結(jié)果向拆,該方法是一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)查詢辦法
-
-
視圖Composer
-
多次傳遞同一個(gè)變量可能是繁瑣的事,這就可以使用一個(gè)共享變量與每個(gè)模板進(jìn)行共享
view()->share('variableName', 'variableValue');
-