詳細 Blade 樣板語法請參考:https://learnku.com/docs/laravel/5.8/blade/3902
Blade語法 | 說明或用法 | 控制器對應 |
{{-- 註解 --}} | 就是註解 | |
{!!$content!!}} | 輸出$content內容(不會過濾) | return view('welcome', ['content' => $content]); |
{{$content}} | 經過htmlentities過濾的內容(< 會變成< ) |
return view('welcome', ['content' => $content]); |
Blade語法 | 說明或用法 |
@if(條件) @elseif(條件) @else @endif |
if 判斷 |
@unless(條件) @endunless |
當條件為false時才成立 |
@for(起始值;條件;變化量) @endfor |
for迴圈 |
@while(條件) @endwhile |
while迴圈 |
@foreach(陣列 as 鍵值) @endforeach |
foreach迴圈,可用 $loop->first以及$loop->last變數 |
@forelse(陣列 as 鍵值) @empty @endforelse |
效果同foreach迴圈,只是會檢查陣列是否為空,若為空會執行@empty以下的內容 |
標記區塊的結束,通常作為@section
的結束標籤,例如:這樣只是定義content的內容,並不會直接呈現,需利用@yield('content')
才能顯示。
@section('content')
<h1>商品一覽</h1>
@endsection
專案\resources\views\layouts\nav.blade.php
,在@else
下方多一個 @section('my_menu')
,也就是自定義一個樣板變數my_menu
並直接顯示。
@guest
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li>
@if (Route::has('register'))
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
@endif
@else
@section('my_menu')
<li class="nav-item">
<a class="nav-link" href="/">回首頁</a>
</li>
@show
<li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
</div>
</li>
@endguest
專案\resources\views\welcome.blade.php
,在最後加上:
@extends('layouts.app')
@section('content')
<h1>商品一覽</h1>
@endsection
@section('my_menu')
<li class="nav-item">
<a class="nav-link" href="/home">回控制台</a>
</li>
@parent
@stop
@parent
刪除,則會以「回控制台」取代原有選項,如: