1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel bladeテンプレートの基本操作

Posted at

Laravel bladeテンプレート内での、if文などの使用方法の基本をまとめます。
デザイナーの方への連携用です

日本語訳ドキュメント

目次

環境

PHP 8.2.4
Laravel Framework 10.48.12

変数の表示

Bladeでは、変数を表示するために二重中括弧 {{ $変数名 }} を使用します。
この形式は、XSS(クロスサイトスクリプティング)を防ぐためにエスケープされた出力を生成します。

sample.blade.php
<p>こんにちは, {{ $name }}</p>

value属性などに変数を設定する場合も同様に行えます。

sample.blade.php
<input type="text" name="user_name" value="{{ $name }}">

エスケープしないデータの表示(HTMLタグをそのまま表示したい場合)は、{{!! $変数名 !!}}のように記述します。この方法を使用する際はXSS対策を十分に考慮する必要があります。

sample.blade.php
<p>こんにちは, {{!! $name !!}}</p>

if文

@if、@elseif、@else、@endif ディレクティブを使用してif文を作成できます。

sample.blade.php

@if(!is_null( $name ))
    <p>こんにちは、{{ $name }}</p>
@else
    <p>nameがnullです<p>
@endif

for文

@for、@endfor ディレクティブを使用して、指定回数の繰り返し処理を行えます。

sample.blade.php
@for ($i = 0; $i < 10; $i++)
    <p>現在は {{ $i }}回目の繰り返し処理です</p>
@endfor

foreach文

配列やコレクションの要素を繰り返し処理する場合は、@foreach、@endforeach ディレクティブを使用します。

sample.blade.php
<tbody>
    @foreach ($car_list as $car)
        <tr>
            <td>{{ $car["model"] }}</td>
            <td>{{ $car["price"] }}円</td>
            <td>{{ $car["mileage"] }}km</td>
        </tr>
    @endforeach
</tbody>

$loop変数(ループ変数)

foreachループの反復処理中、ループの内部では$loop変数を利用できます。この変数により、現在のループのインデックスや、ループの最初の反復なのか最後の反復なのか、といった便利な情報にアクセスすることができます。

現在のループのインデックスを0から始まる整数値として返します。

sample.blade.php
@foreach ($car_list as $car)
 <p>{{ $loop->index }}</p>
@endforeach

■ $loop変数プロパティ

プロパティ   説明
$loop->index 現在の反復のインデックス(初期値0)
$loop->count 反復している配列の総アイテム数
$loop->first  ループの最初の繰り返しか判定
$loop->last Excelループの最後の繰り返しか判定

上記のプロパティなど便利なプロパティが他にもあります。

blade内にPHPコードの埋め込み

@phpディレクティブを使用してblade内にプレーンなPHPブロックを記述できます。

sample.blade.php
@php
    $name = "Bob";
@endphp

<p>こんにちは、{{ $name }}</p>

コメント

ビューにコメントを定義することも可能です。ただしHTMLのコメントとは異なり、Bladeのコメントは、HTMLには含まれません。

sample.blade.php

{{-- このコメントはHTMLの中には含まれません --}}

 <!-- 通常のHTMLのコメントです -->

CSRFリクエストの防止

@csrfは、Laravelフレームワークにおいて、CSRF(クロスサイトリクエストフォージェリ)攻撃から保護するための方法です。これはフォーム内に自動的にCSRFトークンを生成し、隠しフィールドとして埋め込みます.

sample.blade.php
<form  method="POST">
@csrf
    
</form>

config()ヘルパー関数

config()ヘルパー関数を使用すると、アプリケーションのどこからでもconfigディレクトリに作成した設定値を呼び出すことが可能です。

configディレクトリに設定用ファイルを作成します。

config_sample.php
<?php
return [
    "config_str" => "設定ファイルで設定した文字列",
];
sample.blade.php
<p>設置値の呼び出し<p>
<p>設定値:{{config("config_sample.config_str")}}<p>

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?