PHP Academy · レッスン

Bladeテンプレートとビュー

Bladeディレクティブ、レイアウト、コンポーネントで動的なHTMLを表示します

レッスン 4/413 ステップ

「Bladeテンプレートとビュー」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

Blade とは

Blade は Laravel のテンプレートエンジンです。ファイルの拡張子は .blade.php で、ディレクティブ、ループ、レイアウトの継承をサポートします。Blade は通常の PHP にコンパイルされ、キャッシュされます。

変数の出力

二重の波括弧を使用して変数を出力します。値は XSS を防ぐために自動的にエスケープされます。

{{-- resources/views/greeting.blade.php --}}
<h1>Hello, {{ $name }}</h1>
<p>You have {{ $messageCount }} messages.</p>

エスケープしない出力

生の(エスケープされていない)HTML を出力するには {!! !!} を使用します。信頼できるコンテンツに対してのみ使用してください。

{!! $htmlContent !!}

条件分岐

Blade には @if、@elseif、@else、@endif が用意されています。

@if($user->isAdmin())
    <a href="/admin">Admin Panel</a>
@elseif($user->isEditor())
    <a href="/editor">Editor</a>
@else
    <a href="/dashboard">Dashboard</a>
@endif

@isset と @empty

よく使用する null または空の値のチェックを簡潔に記述するための構文です。

@isset($username)
    <p>Welcome, {{ $username }}</p>
@endisset

@empty($items)
    <p>No items found.</p>
@endempty

ループ

Blade は @foreach、@for、@while、@forelse(@empty によるフォールバック)をサポートしています。

@forelse($posts as $post)
    <article>
        <h2>{{ $post->title }}</h2>
    </article>
@empty
    <p>No posts yet.</p>
@endforelse

$loop 変数

@foreach の内部では、$loop からメタデータを取得できます。例:$loop->index、$loop->first、$loop->last、$loop->count。

@extends と @section によるレイアウト

マスターレイアウトを定義し、子ビューで継承します。

{{-- layouts/app.blade.php --}}
<html>
<body>
    @yield("content")
</body>
</html>

{{-- pages/home.blade.php --}}
@extends("layouts.app")
@section("content")
    <h1>Home Page</h1>
@endsection

@include

サブビューのパーシャルを読み込みます。

@include("partials.nav")
@include("partials.alert", ["type" => "success", "msg" => "Saved!"])

Blade コンポーネント

再利用可能なコンポーネントは resources/views/components/ に配置し、<x-component-name> 構文で使用します。

{{-- components/alert.blade.php --}}
<div class="alert alert-{{ $type }}">
    {{ $slot }}
</div>

{{-- Usage: --}}
<x-alert type="success">Profile updated!</x-alert>

ビューへのデータの受け渡し

コントローラーからは、配列または compact() を使用して view() にデータを渡します。

<?php
return view("users.index", [
    "users" => User::all(),
    "title" => "All Users",
]);
// Or:
return view("users.index", compact("users", "title"));

まとめ

Blade は PHP にコンパイルされます。エスケープされた出力には {{ }}、レイアウトには @extends/@section、ループには @foreach/@forelse、再利用可能な UI には <x-component> を使用します。

確認問題

XSS を防ぐために出力を安全にエスケープする Blade 構文はどれですか?

無料で開始

AI チューターと学ぶ PHP — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
49
レッスン
195

よくある質問

「Bladeテンプレートとビュー」レッスンは無料ですか?

はい。「Bladeテンプレートとビュー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「Bladeテンプレートとビュー」で何を学びますか?

Bladeディレクティブ、レイアウト、コンポーネントで動的なHTMLを表示します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Bladeテンプレートとビュー」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Laravelのプロジェクト構成
  2. Laravelでルートを定義する
  3. コントローラーとアクション
  4. Bladeテンプレートとビュー
← PHP Academyに戻る