iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 5
0
自我挑戰組

來用Laravel做點什麼吧系列 第 5

D5 Blade是什麼?可以吃嗎OqO

  • 分享至 

  • xImage
  •  

不能吃。

今天來看看Laravel的模板引擎——Blade。用到Blade的檔案副檔名為blade.php,儲存在 resources/views 資料夾中。Blade語法會被解析為PHP程式碼使用,在Blade模板中不會看到原生的PHP程式碼,Blade也支援自訂指令。

使用時可以建立一個基礎模板,再繼承或引入其他模板進來,把頁面做成模組化的樣子,就不需要每個頁面都寫一遍會重複用到的部分,改的時候也不需要一個一個檔案開啟來改:)

註解

Blade註解的語法為{{-- --}},寫出來的註解不會出現在HTML上面。

流程控制

和一般學的程式語言一樣,該有的都有XDDDD

@if ($condition)

相當於<?php if ($condition): ?>,其他@elseif@else@endif也相當於在PHP的用法。

@unless

和if相反,相當於<?php if (!$condition): ?>,也就是否定用法。

@switch

相當於PHP中的switch,同樣是在前面加上@變成@switch@case@break@default 以及 @endswitch

loop

和流程控制一樣,每個迴圈也有對應的語法。

for loop

@for ($i = 0; $i < 10; $i++)
    <p>{{ $i }} time.</p>
@endfor

while loop

@while (true)
    <p>looping...</p>
@endwhile

Blade也有提供一個變數$loop,可以取得在迴圈時的有用資訊。

也有個語法提供開發者在View上面使用PHP:

@php
    $i = 1;
@endphp

資料顯示

在剛剛for loop可以看到Blade顯示資料的方式是用四個花括號 {{ }} ,這種寫法可以直接避免XSS攻擊。如果不想要被跳脫處理,語法改成{!! !!}

不過這樣的做法會有個問題,便是很多JavaScript框架也會使用花括號作為表達式。如果是要給JavaScript框架用的,我們就可以在前方加上@變成 @{{ }} ,Blade在解析的時候就會跳過它直接把 @{{ }} 解析成HTML的一部份:)

既然講到JavaScript框架,明天就來試試:)


上一篇
D4 來了解一下Route
下一篇
D6 當Laravel遇上Vue
系列文
來用Laravel做點什麼吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言