Bladeテンプレートとビュー
Bladeディレクティブ、レイアウト、コンポーネントで動的なHTMLを表示します
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Laravelのプロジェクト構成
- Laravelでルートを定義する
- コントローラーとアクション
- Bladeテンプレートとビュー