前回はディレクティブについて説明しました。
今回は制御構文を行うディレクティブを実例と共に説明します。
今回は制御構文を行うディレクティブを実例と共に説明します。
前提
ファイル構成
ファイル構成は以下の通りです。
ファイル名 | 説明 |
---|---|
resources/views/layouts/main.blade.php | レイアウトファイル |
resources/views/if/if.blade.php | コンテンツファイル |
routes/web.php | ルーティングファイル |
レイアウトファイル
レイアウトファイルは以下の通りです。
<html> <head></head> <body> <main> @yield('content') </main> </body> </html>
ルーティング
ルーティングは以下の通りです。
Route::get('/if', function () { return view('if.if'); });
基本
@ifディレクティブは、phpの制御構文と同じです。
@extends('layouts.main') @php $value = 1; @endphp @section('content') <h1>IFディレクティブの例</h1> @if ($value === 1) <h2>TOP</h2> @elseif ($value === 2) <h2>MAIN</h2> @else <h2>OTHER</h2> @endif @endsection
unless
false判定するには、@unlessディレクティブも使用できます。
以下は、@ifディレクティブを使用した場合と、@unlessディレクティブを使用した場合の例になります。
どちらも同じ結果になります。
以下は、@ifディレクティブを使用した場合と、@unlessディレクティブを使用した場合の例になります。
どちらも同じ結果になります。
@extends('layouts.main') @php $unlessValue = false; @endphp @section('content') <h1>UNLESSディレクティブの例</h1> @if(!$unlessValue) <h2>if判定を使用したよ。</h2> @endif @unless ($unlessValue) <h2>UNLESSだよ。</h2> @endunless @endsection
empty,isset
empty、issetも使用出来ます。
@extends('layouts.main') @php $nullValue = null; $set = true; @endphp @section('content') <h1>ISSETの例</h1> @isset($set) <h2>その変数は定義されていて値もあるよ。</h2> @endisset <h1>EMPTYの例</h1> @empty($nullValue) <h2>その変数はemptyだよ。</h2> @endempty @endsection
switch
@switchディレクティブでswitch文が使用出来ます。
@extends('layouts.main') @php $switchValue = 2; @endphp @section('content') @switch($switchValue) @case(1) <p>値は1</p> @break @case(2) <p>値は2</p> @break @default <p>値はどれでもない</p> @endswitch @endsection
まとめ
次回は変数に指定された値を画面に表示します。
Bladeテンプレート データ展開
Bladeテンプレート データ展開