首頁 >後端開發 >php教程 >Laravel中Blade模板的使用詳解

Laravel中Blade模板的使用詳解

黄舟
黄舟原創
2017-09-09 10:06:092043瀏覽

Blade 是laravel 提供的一個簡單強大的模板引擎,以下這篇文章主要給大家介紹了關於Laravel框架中Blade模板用法的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

簡介

Blade它不像其他流行的PHP 模板引擎那樣限制你在視圖中使用原生的PHP 程式碼,事實上它就是把Blade 視圖編譯成原生的PHP 程式碼並且快取起來。快取會在 Blade 視圖改變時而改變,這意味著 Blade 並沒有為你的應用程式添加編譯的負擔。 Blade 視圖檔案使用 .blade.php 後綴,一般情況下都儲存在 resources/views 目錄。

1. 繼承、片段、佔位、元件、插槽

1.1 繼承

1.1.1 定義父範本


Laravel/resources/views/base.blade.php

1.1.2 子範本繼承

#路徑:Laravel/resources/views/child .blade.php


@extends('base')

1.2 片段

1.2.1 父模板定義片段


#
@section('part')
// 中间内容即使一个片段
@show

1.2.2 子範本填色片段


@section('part')

片段填入內容


#
@endsection

1.3 佔位

1.3.1 父範本佔位:


@yield('title')

#1.3.2子模板填滿佔位

第一種填滿(文字):


@section('title' , '填充的文本占位')

第二種填滿(文字or html)


@section('title')

填充的佔位


#
@endsection

1.4 元件、插槽

1.4.1 定義元件

路徑:Laravel/resources/views/component.blade.php


##

<p class=&#39;component&#39;>
 <!-- $title,$content 变量实际上就是预定义的插槽 -->
 <p class=&#39;title&#39;>{{ $title }}</p>
 <p class=&#39;content&#39;>{{ $content }}</p>
</p>

1.4 .2 使用元件

路徑:Laravel/resources/views/test.blade.php


@component(&#39;component&#39;)
 @slot(&#39;title&#39;)
  组件标题
 @endsolt
 
 @slot(&#39;content&#39;)
  组件内容
 @endslot
@endcomponent

##2.資料顯示

2.1 轉義輸出


#

{{ $name }}

2.2 未轉義輸出


{!! $name !!}

2.3 原始格式輸出


#第一種(適合量不多):


@{{ name }}

第二種(適合量多):


#

@verbatim
{{ name }}
{{ sex }}
{{ age }}
@endverbatim

3. 流程控制

3.1 for


#注意:

##沒有$loop 變數
  • 沒有@empty
  • #有@break
  • # #有@continue

  • @for ($i = 0; $i < 10; ++$i)
     {{ $i }} <br />
    @endfor

#3.2 foreach

##注意:

有$loop 變數

  • #沒有@empty

  • #有@break


有@continue


#

@foreach ($data as $k => $v)
 {{ $k }} <br />
@endforeach
#3.3 forelse

  • #注意:

  • #有$loop 變數
  • ##必須有@empty
  • 有@break


#有@continue


# #

@foreach ($data as $k => $v)
 {{ $k }} <br />
@empty

    陣列沒有資料

#

@endforeach

4. 使用原生PHP


#

@php 
echo "使用原生 PHP";
@endphp

5. 包含子視圖

    #注意
  • 被包含的子視圖可以引用父視圖定義的所有變數。

你可以傳遞額外的資料到子視圖


#定義父視圖parent.blade.php,並包含子視圖child.blade. php,且傳入額外資料

/**
 * 父视图
 * 父视图拥有变量 $name = &#39;chenxuelong&#39;
 */

<p class=&#39;parent&#39;>
 <p class=&#39;username&#39;>{{ $username }}</p>
 <p class=&#39;child&#39;>
  <!-- 包含子视图 -->
  @include(&#39;child&#39; , [
   &#39;other&#39; => &#39;额外数据&#39;
  ])
 </p>
</p>

/**
 * 子视图
 */
 <p class=&#39;username&#39;>{{ $username }}</p>
 <p class=&#39;other&#39;>{{ $other }}</p>

####總結##########

以上是Laravel中Blade模板的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn