Laravel 5.1 框架Blade模板引擎用法實(shí)例分析
本文實(shí)例講述了Laravel 5.1 框架Blade模板引擎用法。分享給大家供大家參考,具體如下:
為什么要使用blade 它是干什么用的?
blade模板引擎使我們寫HTML頁面的地方,使用它是因?yàn)樗芙o我們提供很多的遍歷,減少代碼的重復(fù)率 提高開發(fā)效率。我們寫blade的路徑是 resources/view 下,它的文件名后綴是blade.php。
1 繼承
繼承是相當(dāng)爽的,它可以從主模板繼承所有代碼,以免大量的代碼重復(fù)。這樣說比較片面,具體看眼代碼吧。
1.1 模板繼承拓展 代碼片段
首先先創(chuàng)建一個(gè) admin/layout.blade.php:
<!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>
然后創(chuàng)建 admin/home.blade.php 繼承自layout:
@extends('admin.layout') @section('title') Home @endsection @section('navibar') @parent <p>增加別的代碼 不是完全覆蓋</p> @endsection @section('content') <p>Content body</p> @endsection
注冊(cè)路由 實(shí)現(xiàn)控制器方法并展示
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function (){ Route::resource('/', 'HomeController'); }); public function index() { return view('admin.home'); }
總結(jié): 好了 現(xiàn)在咱先看layout代碼 它初始定義了一個(gè)HTML簡(jiǎn)單的模板,在需要拓展的地方都加上了@yield關(guān)鍵字 這代表可填充的一塊兒代碼片段區(qū)域,而@section(navi)是聲明了一段片段 然后通過@show來展示。
然后我們創(chuàng)建了home文件,它可以繼承自layout 通過@extends() 繼承之后就可以使用@section填充layout中的@yield的了,一個(gè)yield對(duì)應(yīng)著一個(gè)section,關(guān)于layout中的@section(navi) 在home中也進(jìn)行了補(bǔ)充 因?yàn)槭褂昧薂parent關(guān)鍵字,代表著不覆蓋父模板的代碼片段 而是在父模板的代碼片段最后追加代碼,當(dāng)然啦 如果你要是去掉@parent關(guān)鍵字就會(huì)覆蓋掉。
如果這么說你還是不明白的話,打開編譯器敲一遍 看看結(jié)果就清楚了。
1.2 引入一段代碼
這也是blade相當(dāng)強(qiáng)大的地方 當(dāng)你寫了一段HTML之后呢 發(fā)現(xiàn)其中有些內(nèi)容在別的頁面下重用率很高,你完全可以把它抽出來放在另一個(gè)blade中,然后每當(dāng)你要使用這段代碼時(shí)使用@include引入就行了。
首先我們先來創(chuàng)建一個(gè) some.blade.php(至于放在哪里隨你便) :
<p>這只是一個(gè)演示 所以不浪費(fèi)時(shí)間寫太多的HTML</p>
然后在home中引用它吧:
@extends('admin.layout') @section('title') Home @endsection @section('navibar') @parent <p>增加別的代碼 不是完全覆蓋</p> @endsection @section('content') @include('admin.some') <p>Content body</p> @endsection
2 數(shù)據(jù)展示
這段說說如何將數(shù)據(jù)傳入到一個(gè)視圖 然后將它展示到頁面上。
2.1 數(shù)據(jù)傳入
數(shù)據(jù)傳入有兩種種方法 先說第一種 數(shù)組方式:
public function index() { $name = 'K'; return view('admin.home', compact('name')); // 也可以這么寫 // return view('admin.home', ['name' => $name]); }
第二種方法是with方法:
public function index() { $name = 'K'; return view('admin.home')->with('name', $name); }
2.2 展示數(shù)據(jù)
第一種展示方法 {{ }},用雙花括號(hào)括起來就可以展示傳入blade模板的變量,在{{ }} 里是可以使用PHP代碼的:
<p>用戶:{{ $name }}</p>
第二種展示方法{!! !!},它是不經(jīng)過htmlentities函數(shù)處理的,所以說你傳遞的數(shù)據(jù)是html數(shù)據(jù)的話 可以使用這種方法:
return view('admin.home')->with('name', '<h1>K</h1>'); <p>用戶:{!! $name !!}</p>
3 控制語句
blade模板為了最大化使代碼簡(jiǎn)潔呢 它本身自帶了很多控制語句 這跟咱學(xué)的PHP很類似,就是if啊 foreach啊什么的
3.1 if控制 - 如果
廢話不多說 實(shí)例放這你就能懂:
@if(isset($name)) <p>{{ $name }}</p> @else <p>None</p> @endif
3.2 unless控制 - 除非
@unless(!isset($name)) <p>{{ $name }}</p> @endunless
3.3 for控制 - 循環(huán)
@for ($i = 0; $i < 10; $i++) <p>{{ $i }}</p> @endfor
3.4 foreach控制 - 循環(huán)遍歷
{{--$names = ['k', 'l', 'i'];--}} @foreach($names as $name) <p>{{ $name }}</p> @endforeach
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
欄 目:PHP編程
下一篇:laravel框架數(shù)據(jù)庫操作、查詢構(gòu)建器、Eloquent ORM操作實(shí)例分析
本文標(biāo)題:Laravel 5.1 框架Blade模板引擎用法實(shí)例分析
本文地址:http://mengdiqiu.com.cn/a1/PHPbiancheng/10993.html
您可能感興趣的文章
- 01-11thinkphp框架類庫擴(kuò)展操作示例
- 01-11關(guān)于Yii2框架跑腳本時(shí)內(nèi)存泄漏問題的分析與解決
- 01-11php 實(shí)現(xiàn)簡(jiǎn)單的登錄功能示例【基于thinkPHP框架】
- 01-11Laravel 微信小程序后端搭建步驟詳解
- 01-11Laravel框架Blade模板簡(jiǎn)介及模板繼承用法分析
- 01-11Laravel 微信小程序后端實(shí)現(xiàn)用戶登錄的示例代碼
- 01-11Laravel框架基礎(chǔ)語法與知識(shí)點(diǎn)整理【模板變量、輸出、include引入
- 01-11Laravel框架Eloquent ORM刪除數(shù)據(jù)操作示例
- 01-11Laravel框架Eloquent ORM修改數(shù)據(jù)操作示例
- 01-11Laravel框架Eloquent ORM簡(jiǎn)介、模型建立及查詢數(shù)據(jù)操作詳解


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02php本站才可以請(qǐng)求數(shù)據(jù) php本地?cái)?shù)據(jù)庫
- 04-02關(guān)于txt數(shù)據(jù)庫php的信息
- 04-02php打印請(qǐng)求數(shù)據(jù) php打印輸出結(jié)果
- 04-02網(wǎng)頁里php操作數(shù)據(jù)庫 php網(wǎng)頁例子
- 04-02php插入數(shù)據(jù)庫為亂碼 php連接數(shù)據(jù)庫亂
- 04-02php數(shù)據(jù)庫地址 phpstudy 數(shù)據(jù)庫
- 04-02php數(shù)據(jù)庫數(shù)據(jù)相加 php數(shù)據(jù)庫添加數(shù)據(jù)
- 04-02數(shù)據(jù)權(quán)限架構(gòu)思路php 數(shù)據(jù)權(quán)限設(shè)計(jì)方
- 04-02php數(shù)據(jù)庫輸入變量 php里輸出數(shù)據(jù)庫數(shù)
- 04-02php如何用導(dǎo)入數(shù)據(jù) php用來導(dǎo)入其他文
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什