iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0
Modern Web

PHP laravel的邂逅系列 第 11

DAY11-blade介紹

  • 分享至 

  • xImage
  •  

DAY11-blade介紹

使用Blade模板的兩個主要優點為模板繼承與區塊。Blade 視圖檔案使用 .blade.php 做為副檔名,且通常儲存於 resources/views 資料夾。

很多檔案某些部分一樣,像是header、footer、或側邊欄都可以只透過一個檔案來做修改,而不用每一隻都放進去一樣的程式碼,後續維護也不方便,也有可能有些地方忘了修改,或是一次修改就要改很多地方,這樣非常浪費時間阿

模板繼承

<!-- 檔案儲存於 resources/views/layouts/master.blade.php -->

<html>
    <head>
        <title>應用程式名稱 - @yield('title')</title>
    </head>
    <body>
        @section('sidebar')
            這是主要的側邊欄。
        @show

        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

上面可以看到@section和@yield這兩個是什麼東西哩,以前都沒看過阿!

  • @section 定義一個內容區塊

  • @yield 用來顯示給定區塊的內容

繼承頁面佈局

<!-- 儲存於 resources/views/child.blade.php -->

@extends('layouts.master')

@section('title', '頁面標題')

@section('sidebar')
    @parent

    <p>這邊會附加在主要的側邊欄。</p>
@endsection

@section('content')
    <p>這是我的主要內容。</p>
@endsection
  • @extends 命令來為子視圖指定應該「繼承」的佈局

控制結構

下面簡單介紹在blade中要怎麼去使用控制結構,跟php原生的相似,但有一點差別,這部分多寫就會記得了。

If 陳述式
@if (count($records) === 1)
    我有一條記錄!
@elseif (count($records) > 1)
    我有多條記錄!
@else

@endif
迴圈
@for ($i = 0; $i < 10; $i++)
    目前的值為 {{ $i }}
@endfor

@foreach ($users as $user)
    <p>此使用者為 {{ $user->id }}</p>
@endforeach                      

@forelse ($users as $user)
    <li>{{ $user->name }}</li>
@empty
    <p>沒有使用者</p>
@endforelse

@while (true)
    <p>我永遠都在跑迴圈。</p>
@endwhile
                      

上一篇
DAY10-View介紹
下一篇
DAY12-Database介紹 PART 1
系列文
PHP laravel的邂逅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言