佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Laravel 5.1 框架Blade模板引擎用法實(shí)例分析

Laravel 5.1 框架Blade模板引擎用法實(shí)例分析

熱門標(biāo)簽:Linux服務(wù)器 Mysql連接數(shù)設(shè)置 團(tuán)購(gòu)網(wǎng)站 銀行業(yè)務(wù) 服務(wù)器配置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 阿里云 電子圍欄

本文實(shí)例講述了Laravel 5.1 框架Blade模板引擎用法。分享給大家供大家參考,具體如下:

為什么要使用blade 它是干什么用的?

blade模板引擎使我們寫HTML頁(yè)面的地方,使用它是因?yàn)樗芙o我們提供很多的遍歷,減少代碼的重復(fù)率 提高開(kāi)發(fā)效率。我們寫blade的路徑是 resources/view 下,它的文件名后綴是blade.php。

1 繼承

繼承是相當(dāng)爽的,它可以從主模板繼承所有代碼,以免大量的代碼重復(fù)。這樣說(shuō)比較片面,具體看眼代碼吧。

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)是聲明了一段片段 然后通過(guò)@show來(lái)展示。

然后我們創(chuàng)建了home文件,它可以繼承自layout 通過(guò)@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ì)覆蓋掉。

如果這么說(shuō)你還是不明白的話,打開(kāi)編譯器敲一遍 看看結(jié)果就清楚了。

1.2 引入一段代碼

這也是blade相當(dāng)強(qiáng)大的地方 當(dāng)你寫了一段HTML之后呢 發(fā)現(xiàn)其中有些內(nèi)容在別的頁(yè)面下重用率很高,你完全可以把它抽出來(lái)放在另一個(gè)blade中,然后每當(dāng)你要使用這段代碼時(shí)使用@include引入就行了。

首先我們先來(lái)創(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ù)展示

這段說(shuō)說(shuō)如何將數(shù)據(jù)傳入到一個(gè)視圖 然后將它展示到頁(yè)面上。

2.1 數(shù)據(jù)傳入

數(shù)據(jù)傳入有兩種種方法 先說(shuō)第一種 數(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)括起來(lái)就可以展示傳入blade模板的變量,在{{ }} 里是可以使用PHP代碼的:

p>用戶:{{ $name }}/p>

第二種展示方法{!!  !!},它是不經(jīng)過(guò)htmlentities函數(shù)處理的,所以說(shuō)你傳遞的數(shù)據(jù)是html數(shù)據(jù)的話 可以使用這種方法:

return view('admin.home')->with('name', 'h1>K/h1>');
p>用戶:{!! $name !!}/p>

3 控制語(yǔ)句

blade模板為了最大化使代碼簡(jiǎn)潔呢 它本身自帶了很多控制語(yǔ)句 這跟咱學(xué)的PHP很類似,就是if啊 foreach啊什么的

3.1 if控制 - 如果

廢話不多說(shuō) 實(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)秀開(kāi)發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Laravel實(shí)現(xiàn)通過(guò)blade模板引擎渲染視圖
  • Laravel中的Blade模板引擎示例詳解
  • Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹
  • Laravel 5框架學(xué)習(xí)之Blade 簡(jiǎn)介
  • Laravel框架中Blade模板的用法示例
  • Laravel框架之blade模板新手入門教程及小技巧
  • 解決Laravel blade模板轉(zhuǎn)義html標(biāo)簽的問(wèn)題
  • 在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量
  • Laravel 實(shí)現(xiàn)在Blade模版中使用全局變量代替路徑的例子
  • laravel框架實(shí)現(xiàn)為 Blade 模板引擎添加新文件擴(kuò)展名操作示例

標(biāo)簽:棗莊 衡水 萍鄉(xiāng) 大理 廣元 衢州 江蘇 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel 5.1 框架Blade模板引擎用法實(shí)例分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    华宁县| 盖州市| 喀什市| 获嘉县| 上高县| 二手房| 元朗区| 招远市| 琼中| 平邑县| 浮山县| 长兴县| 康定县| 奎屯市| 凌云县| 子长县| 江阴市| 崇义县| 广安市| 冕宁县| 民丰县| 库尔勒市| 永州市| 荆州市| 卢氏县| 高唐县| 灌南县| 精河县| 汶川县| 奉新县| 星子县| 定南县| 石楼县| 马山县| 明星| 红安县| 临西县| 锡林浩特市| 特克斯县| 双流县| 库尔勒市|