Bladeテンプレートに使用できる機能をご紹介したいと思います。
沢山ありすぎるので最初はあくまでも基本形だけです!
これ使えるみたいなのがあればその都度更新していきたいと思います。
Menu
エスケープ処理
{{ $sample }}で波括弧二つ付けて表示した場合
・エスケープ処理として自動的にhtmlspecialchars関数を通します。
・XSS攻撃を回避できます。
htmlの場合
- ":シングルクォーテーション(’)
- &:アンパサンド(&)
- <:小なり(<)
- >:大なり(>)
- :半角スペース
- ©:コピーライト
エスケープしてくれます。
なんでエスケープすんの?疑問に思うかもしれませんが
例えば誰かがいたずらで登録時にデータベースの名前に下記のようなタグを挿入に成功できたとしたら…
<h1 style=”font-size:700px”;>攻撃</h1>
のようにデータベースから画面に表示されるときにさっきのようなタグのままなら上記のような大きい文字の表示になってしまいます。
ですので下記のようにエスケープ処理をします。
【エスケープ前】
<h1 style=”font-size:700px”;>攻撃</h1>
【エスケープ後】
<h1 style="font-size:700px";>攻撃</h1><br>
これで回避できますので{{ }}をきちんと付けてエスケープをきちんとします。
エスケープをしたくない時の記述
{{!! $sample !!}}
ビックリマークを前後2つずつ追加します。
まあこれないとエスケープしたくない時に困りますね。
ディレクティブ
【@if】
- @if
- @elseif
- @else
- @endif
4つあります。
とはいっても超簡単です。
1 2 3 4 5 | @if(Auth::check()===true) <p>ログインしています<p> @elseif(Auth::check()===false) <p>ログインしていません<p> @endif |
ユーザーにidがあれば登録済み、なければ未登録を表示します。
普通にPHPのifの前に@が付いただけでほぼ一緒です!
@php
1 2 3 | @php echo 'Laravel !!'; @endphp |
PHPの記述
@isset
1 2 3 4 5 6 7 | @php $data="Lravel"; @endphp @isset($data) <p>nullではないです。</p> @endisset |
nullを判別時に使用
@empty
1 2 3 4 5 6 7 | @php $data=null; @endphp @empty($data) <p>データは空です。</p> @endempty |
$dataが空なのかを判別。trueが表示
@auth
1 2 3 | @auth ログインしてます。 @endauth |
ログインしているときに表示されます。
こういうのは欲しかった機能ですよ!
@guest
1 2 3 | @guest ログインしていません。 @endguest |
ログインしていない時に表示されます。
こういうのは欲しかった機能ですよ!
@for
1 2 3 | @for ($int = 1; $int <= 10; $int++) {{$int}} @endfor |
まとめ
というわけで、いくつかご紹介しましたがまだまだたくさんBladeの機能はたくさんあるので自分で使用するものだけ使用して無駄な時間に費やさないようにしましょう!
こちらの機能は使える機能があれば随時更新していきます。
以上です。