Laravel實現通過blade模板引擎渲染視圖

 更新時間:2019年10月25日 09:50:29   作者:theVicTory   我要評論
今天小編就為大家分享一篇Laravel實現通過blade模板引擎渲染視圖,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

laravel提供了blade模板引擎用于視圖的渲染,在blade中可以直接使用PHP代碼,并且blade最終也會被編譯為php緩存起來,只有在blade文件被修改后才會重新編譯,這一點可以節省開銷提高應用性能。blade文件.blade.php作為視圖文件存放于laravel的resource/views目錄下。

1、定義模板

blade定義模板頁面同創建html頁面一樣,只不過在適當的位置通過@section或@yield來占位,當其它頁面引用模板頁時將內容填充到占位的位置即可

<html>
 <head>
  <title>@yield('title')</title>
 </head>
 <body>
  <header class="header">
   @section('header')
    這是頭部<br>
   @show
  </header>
  <div class="middle">
   <aside class="aside">
    這是側邊欄
    @yield('aside')
   </aside>
   <div class="content">
    @section('content')
    這是主體內容
    @show
   </div>
  </div>
  <footer class="footer">
   這是底部
   @yield('footer')
  </footer>
 </body>
</html>

section與yield都是占位符,其區別體現在引用模板時,當使用yield時會完全將指定的占位符替換掉,而使用section時可以通過@parent來保留@section()[email protected]之間的內容。

如果需要在blade中引入外部js、css文件可以采用相對public目錄的絕對路徑,例如引入自帶的bootstrap,位于public/css/app.css,可以<link rel="stylesheet" href="{{ asset('./css/app.css')}}" rel="external nofollow" >

2、引用模板

引用模板首先需要通過@extends()引入你需要使用的模板,模板位置相對于views目錄。然后通過@section()[email protected](注意與定義模板時的@[email protected]區別),將你所需要替換的內容填充到模板的指定位置,例如要填充header對應的section:

@extends('template.layout')  {{--引入模板views/template/layout.blade.php--}}

@section('title')

登錄界面

@stop

@section('header')    {{--填充到header對應的占位符--}}

@parent      {{--保留模板原內容--}}

頭部替換內容

@stop

引入組件:通過@component來引入組件模板。比如定義了一個通用的錯誤提示組件alert:

<div style="color: #ff5b5d;">
 <h5>{{$title}}</h5>
 {{$slot}}
</div>

在頁面中使用該組件:

@component('template.alert') {{--引入組件views/template/alert.blade.php--}}
 @slot('title')    {{--指定替代組件中的$title位置--}}
  alert標題
 @endslot
 alert組件內容
@endcomponent

@[email protected]之間的內容會自動替代組件{{$slot}},如果要指定替代的位置,可以通過@slot()[email protected]

引入子視圖:在一個頁面中如果希望引入一個blade子視圖,可以通過@include()

@include('template.child')

在blade中輸出變量通過{{$var}},其中的語句已經經過 PHP 的 htmlentities 函數處理以避免 XSS 攻擊。例如在controller中引入view時傳入變量參數:

public static function showBlade(){
 return view('Login.login',['var'=>'test']);
}

在blade中使用該變量

變量為:{{isset($var)? $var : '默認值'}}

有時候我們希望blade不要對文本進行解析,原樣輸出,比如在vue中也使用{{}}包裹變量,我們不希望blade對其進行編譯,這時可以使用@:

原文本輸出:@{{ $var }}

3、流程控制

blade提供了一套流程控制語句來對頁面的渲染進行控制,使頁面的渲染更為快捷,并且這些控制語句都是和PHP非常類似的。

if判斷:

@if ($val >80)
 優秀
@elseif ($val>60)
 及格
@else
 不及格
@endif

循環:

@for ($i = 0; $i < 10; $i++)
 The current value is {{ $i }}
@endfor
 
@foreach ($users as $user)
 <p>This is user {{ $user->id }}</p>
@endforeach

switch分支:

@switch($i)
 @case(1)
  First case...
  @break
 
 @case(2)
  Second case...
  @break
 
 @default
  Default case...
@endswitch

認證:@auth 和 @guest 指令可用于快速判斷當前用戶是否登錄:

@auth
 // 用戶已登錄...
@endauth
 
@guest
 // 用戶未登錄...
@endguest

以上這篇Laravel實現通過blade模板引擎渲染視圖就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • PHP+Ajax異步帶進度條上傳文件實例

    PHP+Ajax異步帶進度條上傳文件實例

    這篇文章主要介紹了PHP+Ajax異步帶進度條上傳文件實例代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下。
    2016-11-11
  • 淺析PHP7 的垃圾回收機制

    淺析PHP7 的垃圾回收機制

    垃圾回收機制是一種動態存儲分配方案。它會自動釋放程序不再需要的已分配的內存塊。 這篇文章主要介紹了PHP7 的垃圾回收機制,需要的朋友可以參考下
    2019-09-09
  • ThinkPHP中create()方法自動驗證表單信息

    ThinkPHP中create()方法自動驗證表單信息

    這篇文章主要為大家詳細介紹了ThinkPHP中create()方法自動驗證表單信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • ThinkPHP實現附件上傳功能

    ThinkPHP實現附件上傳功能

    這篇文章主要為大家詳細介紹了ThinkPHP實現附件上傳功能,圖片,文檔,視頻等文件進行上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 數字轉英文

    數字轉英文

    數字轉英文...
    2006-12-12
  • PHP+百度AI OCR文字識別實現了圖片的文字識別功能

    PHP+百度AI OCR文字識別實現了圖片的文字識別功能

    這篇文章主要介紹了PHP+百度AI OCR文字識別實現了圖片的文字識別功能,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • PHP7新特性foreach 修改示例介紹

    PHP7新特性foreach 修改示例介紹

    這篇文章主要介紹了PHP7新特性foreach修改內容介紹,非常不錯,介紹的非常詳細,具有參考借鑒價值,對php7新特征相關知識感興趣的朋友一起學習吧
    2016-08-08
  • Yii的Srbac插件用法詳解

    Yii的Srbac插件用法詳解

    這篇文章主要介紹了Yii的Srbac插件用法,結合實例形式詳細分析了Srbac插件進行訪問控制的具體功能與相關使用技巧,需要的朋友可以參考下
    2016-07-07
  • laravel5環境隱藏index.php后綴(apache)的方法

    laravel5環境隱藏index.php后綴(apache)的方法

    今天小編就為大家分享一篇laravel5環境隱藏index.php后綴(apache)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • PHP把數字轉成人民幣大寫的函數分享

    PHP把數字轉成人民幣大寫的函數分享

    這篇文章主要介紹了PHP把數字轉成人民幣大寫的函數分享,最后效果參考了一個百度APP,滿足大部份情況,需要的朋友可以參考下
    2014-06-06

最新評論

福建体育彩票时时彩11