前回はディレクティブについて説明しました。
今回は制御構文を行うディレクティブを実例と共に説明します。
今回は制御構文を行うディレクティブを実例と共に説明します。
前提
ファイル構成
ファイル構成は以下の通りです。
| ファイル名 | 説明 |
|---|---|
| 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テンプレート データ展開