Laravel Blade 快速指南

這篇文章僅列出重點程式碼,如想了解語法細節,可參考
學習Laravel Blade視圖引擎,看這一篇就夠了
樣板控制
挖洞
@yield(‘{section name}’)
@section(‘{section name}’)
<div>可以選擇性繼承的內容</div>
@show
填洞
填單一內容使用
@section(‘{yield name}’ , ’{ string }’)
填複雜內容使用
@section(‘{yield name}’)
@stop
包含
@include(‘{view name}’,['key1'=>'value1','key2'=>'value2'])
繼承,通常寫在子視圖的頭
@extends(‘{view name}’)
程式邏輯控制
條件判斷式
假如
@if
@elseif
@else
@endif
除非
@unless
@endunless
當
@switch
@endswitch
迴圈
@foreach( $tasks as $task )
逐一取出陣列的內容來加以處理
@endforeach
@for( $i = 0 ; $i<10 ; $++ )
@endfor
@forelse( $tasks as $task )
@empty
目前沒有工作
@endforelse
@while
@endwhile
隱含變數 $loop
$loop->index 索引值,從0開始 $loop->iteration 第幾個,從1開始 $loop->remaining 還剩幾個 $loop->count 總共幾個 $loop->last 是否為最後 $loop->first 是否為第一
輸出內容
{{ 內容遇到程式碼會當純文字處理 }} {!! 內容遇到程式碼會渲染並執行 !!} {{- - 註解 --}} @{{ 顯示Blade語法 }}
實作範例
//resources/views/master.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>
@yield('title')
</title>
</head>
<body>
@yield('content')
@section('js')
<script src="js/1.js" />
@show
<p>js結束</p>
</body>
</html>
//resources/views/index.blade.php
@extends('layouts.master')
@section('js')
<script src="2.js" />
@parent
@stop
@section('title','首頁')
@section('content')
<div class="container clearfix">
我的內容
</div>
@foreach ($data as $tmp)
<h2>{{ $tmp }}</h2>
<h3>{{ $loop->index }} </h3>
@endforeach
@stop
//routes/web.php
Route::get('/index','HomeController@index');
//app/Http/Controllers/HomeController.php
public function index()
{
return view('index');
}
多視圖共享
//全域共享
view()->share('tel','0212345678');
//部分共享
view()->composer(['items.*'],function($view){
$view->with('address','中山路一號');
});