本文實例講述了Laravel 5.1 框架Blade模板引擎用法。分享給大家供大家參考,具體如下:
為什么要使用blade 它是干什么用的?
blade模板引擎使我們寫HTML頁面的地方,使用它是因為它能給我們提供很多的遍歷,減少代碼的重復率 提高開發效率。我們寫blade的路徑是 resources/view 下,它的文件名后綴是blade.php。
1 繼承
繼承是相當爽的,它可以從主模板繼承所有代碼,以免大量的代碼重復。這樣說比較片面,具體看眼代碼吧。
1.1 模板繼承拓展 代碼片段
首先先創建一個 admin/layout.blade.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html> <html> <head> <title>Learn Laravel-- @yield( 'title' )</title> </head> <body> @section( 'navibar' ) The master navigation bar @show <div class = "container" > @yield( 'content' ) </div> </body> </html> |
然后創建 admin/home.blade.php 繼承自layout:
1
2
3
4
5
6
7
8
9
10
11
|
@ extends ( 'admin.layout' ) @section( 'title' ) Home @endsection @section( 'navibar' ) @parent <p>增加別的代碼 不是完全覆蓋</p> @endsection @section( 'content' ) <p>Content body</p> @endsection |
注冊路由 實現控制器方法并展示
1
2
3
4
5
6
7
|
Route::group([ 'prefix' => 'admin' , 'namespace' => 'Admin' ], function (){ Route::resource( '/' , 'HomeController' ); }); public function index() { return view( 'admin.home' ); } |
總結: 好了 現在咱先看layout代碼 它初始定義了一個HTML簡單的模板,在需要拓展的地方都加上了@yield關鍵字 這代表可填充的一塊兒代碼片段區域,而@section(navi)是聲明了一段片段 然后通過@show來展示。
然后我們創建了home文件,它可以繼承自layout 通過@extends() 繼承之后就可以使用@section填充layout中的@yield的了,一個yield對應著一個section,關于layout中的@section(navi) 在home中也進行了補充 因為使用了@parent關鍵字,代表著不覆蓋父模板的代碼片段 而是在父模板的代碼片段最后追加代碼,當然啦 如果你要是去掉@parent關鍵字就會覆蓋掉。
如果這么說你還是不明白的話,打開編譯器敲一遍 看看結果就清楚了。
1.2 引入一段代碼
這也是blade相當強大的地方 當你寫了一段HTML之后呢 發現其中有些內容在別的頁面下重用率很高,你完全可以把它抽出來放在另一個blade中,然后每當你要使用這段代碼時使用@include引入就行了。
首先我們先來創建一個 some.blade.php(至于放在哪里隨你便) :
1
|
< p >這只是一個演示 所以不浪費時間寫太多的HTML</ p > |
然后在home中引用它吧:
1
2
3
4
5
6
7
8
9
10
11
12
|
@ extends ( 'admin.layout' ) @section( 'title' ) Home @endsection @section( 'navibar' ) @parent <p>增加別的代碼 不是完全覆蓋</p> @endsection @section( 'content' ) @ include ( 'admin.some' ) <p>Content body</p> @endsection |
2 數據展示
這段說說如何將數據傳入到一個視圖 然后將它展示到頁面上。
2.1 數據傳入
數據傳入有兩種種方法 先說第一種 數組方式:
1
2
3
4
5
6
7
|
public function index() { $name = 'K' ; return view( 'admin.home' , compact( 'name' )); // 也可以這么寫 // return view('admin.home', ['name' => $name]); } |
第二種方法是with方法:
1
2
3
4
5
|
public function index() { $name = 'K' ; return view( 'admin.home' )->with( 'name' , $name ); } |
2.2 展示數據
第一種展示方法 {{ }},用雙花括號括起來就可以展示傳入blade模板的變量,在{{ }} 里是可以使用PHP代碼的:
1
|
< p >用戶:{{ $name }}</ p > |
第二種展示方法{!! !!},它是不經過htmlentities函數處理的,所以說你傳遞的數據是html數據的話 可以使用這種方法:
1
2
|
return view( 'admin.home' )->with( 'name' , '<h1>K</h1>' ); <p>用戶:{!! $name !!}</p> |
3 控制語句
blade模板為了最大化使代碼簡潔呢 它本身自帶了很多控制語句 這跟咱學的PHP很類似,就是if啊 foreach啊什么的
3.1 if控制 - 如果
廢話不多說 實例放這你就能懂:
1
2
3
4
5
|
@ if (isset( $name )) <p>{{ $name }}</p> @ else <p>None</p> @ endif |
3.2 unless控制 - 除非
1
2
3
|
@unless(!isset( $name )) <p>{{ $name }}</p> @endunless |
3.3 for控制 - 循環
1
2
3
|
@ for ( $i = 0; $i < 10; $i ++) <p>{{ $i }}</p> @ endfor |
3.4 foreach控制 - 循環遍歷
1
2
3
4
|
{{-- $names = [ 'k' , 'l' , 'i' ];--}} @ foreach ( $names as $name ) <p>{{ $name }}</p> @ endforeach |
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。
原文鏈接:https://www.cnblogs.com/sun-kang/p/7296422.html