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