のぐそんブログ

暗いおじさんがシコシコ書くブログです。

LaravelのBladeの構文

{!! 変数、式、関数など !!}

定義した内容がエスケープされないで表示される。

class HogeController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            'html' => '<h2>ABC</h2>',
        ];
        return view('hello.index', $data);
    }
}
<body>
{!! $html !!} // ABC
{{$html}} // <h2>ABC</h2>
</body>

@if、@else @elseif

条件分岐を利用できます。

class HogeController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            'age' => 10,
        ];
        return view('hello.index', $data);
    }
}
<body>
@if($age < 10)
    10歳以下
@else
    10歳以上
@endif
// 10歳以上
</body>

@unless

@ifの逆の動作をします。

class HogeController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            'age' => 10,
        ];
        return view('hello.index', $data);
    }
}
<body>
@unless($age < 10)
    10歳以下
@endunless
// 10歳以下
</body>

@empty

空のチェックができます。

class HogeController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            'hoge1' => '',
            'hoge2' => null,
            'hoge3' => [],
        ];
        return view('hello.index', $data);
    }
}
<body>
@empty($hoge1)
空です
@endempty

@empty($hoge2)
空です
@endempty

@empty($hoge3)
空です
@endempty
</body>

@isset

変数が定義されているかをチェックできます。

class HogeController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            'msg' => 'こんにちは',
        ];
        return view('hello.index', $data);
    }
}
<body>
@isset($msg)
{{$msg}} // こんにちは
@endisset
</body>

@for

繰り返し処理です。

@for ($i = 0; $i < 10; $i++)
    現在の値は: {{ $i }} // 1,2,3,4...
@endfor

@foreach

繰り返し処理です。

class HogeController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            'items' => ['A','B','C'],
        ];
        return view('hello.index', $data);
    }
}
<body>
@foreach ($items as $item)
    現在の値は: {{ $item }} 
    //現在の値は: A
    //現在の値は: B
    //現在の値は: C
@endforeach
</body>
ループ変数

繰り返し処理では$loopという変数が利用できます。

$loop -> {プロパティ}で利用できます。

プロパティ 内容
index 現在のindex番号
iteration 現在の繰り返し数
remaining 残りの繰り返し数
count 繰り返しに使用しえいる配列の長さ
first 最初の要素かどうか
last 最後の要素かどうか
depth 繰り返しのネスト数
parent 親の繰り返しループ変数

@php

@phpを利用することでphpスクリプトを実行することができます。

<body>
@php
$hoge = 'ほげほげ';
echo $hoge; // ほげほげ
@endphp
</body>