天天看點

laravel blade模闆引擎學習

@extends

@extends用來指定子模闆所繼承的模闆:

@extends('test.master')
<!-- 表示繼承test目錄下的master.blade.php模闆 --!>
           

@section

blade模闆引擎4.0建議用 @stop 替換 @endsection ,不過是向下相容的,是以 @endsection 還可以用。

@section+@endsection用來定義片段(section):

@section('ts')
<p>desc test content</p>
@endsection
           

之後使用這個片段的話隻需要用

@yield('ts')

即可。

@section+@show用來定義并在此顯示片段(section),類似于在@section+@endsection後緊跟@yield:

@section('ts')
it is a test.
@show
<!-- 在父模闆中使用該代碼相當于給ts片段加了一個預設值,子模闆中可以通過重新定義ts片段來修改ts模闆的值 --!>
           

@parent

在子模闆中使用表示父模闆中的内容

@yield

@yield用來顯示片段(section):

@yield('ts', 'default value')
<!-- 第一個參數是片段名,第二個參數是預設值(當指定的片段名不存在時顯示的值) --!>
           

@include

引入模闆:

@include('layouts.footer')
<!-- 表示引入layouts/footer.blade.php --!>
           

Blade 與 JavaScript 架構

由于許多 JavaScript 架構也使用「大括号」在浏覽器中顯示指定的表達式,是以可以使用 @ 符号來告知 Blade 渲染引擎該表達式應該維持原樣。舉個例子:

在這個例子中,@ 符号會被 Blade 移除。而且,Blade 引擎會保留 {{ name }} 表達式,如此一來便可跟其它 JavaScript 架構一起應用。

當資料存在時輸出

有時候你想要輸出一個變量,但你并不确定這個變量是否已被設定。我們可以用像這樣的冗長 PHP 代碼表達:

不過,Blade 提供了較友善的縮寫來替代寫三元運算符表達式: