Bladeの中でphpのコードを書くとき

投稿者: | 2019年8月11日

LaravelのBladeは基本的に@ifや@foreachといった ディレクティブ と呼ばれるものを使います。
しかし、どうしてもphpのコードを書きたい場合、<?php ~ ?> を使うとどうも負けたような気がします。
そんなときは下記のように @php ~ @endphpを使うと、ちょっとカッコよく見えます。

<ul>
    @foreach($items as $key => $item)
        @php
            $itemNo = $key + $category->key * 1000;
        @endphp
        <li id="item{{$itemNo}}">
            <dl>
                <dt>お問い合わせ番号</dt>
                <dd>{{$itemNo}}</dd>
                <dt>商品名</dt>
                <dd>$item->name</dd>
            </dl>
        </li>
    @endforeach
</ul>

ベストなのはBladeにこういったコードを書かない設計をすることですけどね。