ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
基本: @if / @elseif / @else
{{-- 基本形 --}}
@if ($user->age >= 20)
<p>成人</p>
@elseif ($user->age >= 13)
<p>未成年 (中高生)</p>
@else
<p>子ども</p>
@endif
{{-- コンパイル後は PHP の if --}}
<?php if ($user->age >= 20): ?>
<p>成人</p>
<?php elseif ($user->age >= 13): ?>
<p>未成年 (中高生)</p>
<?php else: ?>
<p>子ども</p>
<?php endif; ?>
@unless: not の糖衣構文
{{-- @if (!...) と同じ意味 --}}
@unless (Auth::check())
<a href="/login">ログイン</a>
@endunless
{{-- これと等価 --}}
@if (! Auth::check())
<a href="/login">ログイン</a>
@endif
@isset: 変数定義 & 非 null チェック
{{-- 変数が定義されかつ null でないとき --}}
@isset ($user)
<p>{{ $user->name }}</p>
@endisset
{{-- @isset は内部的に --}}
<?php if (isset($user)): ?>
<p>{{ $user->name }}</p>
<?php endif; ?>
{{-- 配列キーの存在チェック --}}
@isset ($data['name'])
{{ $data['name'] }}
@endisset
@empty: 空判定
{{-- PHP の empty() と同じ --}}
@empty ($users)
<p>ユーザーは登録されていません</p>
@endempty
{{-- @forelse とセットでよく使う --}}
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<li>ユーザーがいません</li>
@endforelse
@auth / @guest: ログイン状態判定
{{-- ログイン中のみ表示 --}}
@auth
<p>{{ Auth::user()->name }} さん、こんにちは</p>
<a href="/logout">ログアウト</a>
@endauth
{{-- 未ログインのみ表示 --}}
@guest
<a href="/login">ログイン</a>
<a href="/register">新規登録</a>
@endguest
{{-- ガード指定 --}}
@auth ('admin')
<a href="/admin">管理画面</a>
@endauth
@guest ('api')
<p>API トークンが必要です</p>
@endguest
@can / @cannot: 認可 (Gate / Policy)
{{-- ユーザーが特定の権限を持つか --}}
@can ('update', $post)
<a href="/posts/{{ $post->id }}/edit">編集</a>
@endcan
@cannot ('delete', $post)
<p>削除権限がありません</p>
@endcannot
{{-- 複数権限のいずれか --}}
@canany (['update', 'delete'], $post)
<button>操作メニュー</button>
@endcanany
{{-- これは AuthServiceProvider で定義 --}}
{{-- Gate::define('update', fn($user, $post) => $user->id === $post->user_id); --}}
@switch: 多分岐
@switch ($status)
@case ('draft')
<span class="badge gray">下書き</span>
@break
@case ('published')
<span class="badge green">公開</span>
@break
@case ('archived')
<span class="badge red">アーカイブ</span>
@break
@default
<span class="badge">不明</span>
@endswitch
条件付きクラス: @class
Laravel 8.51+ で追加された便利ディレクティブ:
{{-- 条件に応じて class を付与 --}}
<div @class([
'p-4',
'bg-red-100 text-red-800' => $hasError,
'bg-green-100 text-green-800' => $isSuccess,
'opacity-50' => $isDisabled,
])>
メッセージ
</div>
{{-- 同様に @style もある --}}
<div @style(['color: red' => $important])>...</div>
{{-- @checked / @selected / @disabled / @readonly --}}
<input type="checkbox" @checked(old('agree', $user->agree))>
<option value="JP" @selected($country === 'JP')>日本</option>
<button @disabled($isLoading)>送信</button>
条件付きインクルード
{{-- 条件 true のときだけインクルード --}}
@includeWhen ($user->isAdmin(), 'admin.menu', ['user' => $user])
{{-- 条件 false のときだけインクルード --}}
@includeUnless ($user->isAdmin(), 'guest.banner')
{{-- ビューファイルが存在すればインクルード --}}
@includeIf ('partials.optional-banner')
{{-- 配列の最初に存在するビューをインクルード --}}
@includeFirst (['custom.header', 'default.header'])
ネストと組み合わせ例
@auth
@if ($user->isAdmin())
<a href="/admin">管理</a>
@elseif ($user->isPaidMember())
<a href="/premium">プレミアム機能</a>
@can ('create', App\Models\Post::class)
<a href="/posts/create">投稿作成</a>
@endcan
@else
<a href="/upgrade">プランをアップグレード</a>
@endif
@else
@guest
<a href="/login">ログイン</a>
@endguest
@endauth
ディレクティブ一覧
| ディレクティブ | 同等の PHP | 用途 |
|---|---|---|
@if / @endif | if {} | 真偽判定 |
@unless / @endunless | if (!...) | 否定形 |
@isset / @endisset | isset() | 変数定義チェック |
@empty / @endempty | empty() | 空判定 |
@auth / @endauth | Auth::check() | ログイン中のみ |
@guest / @endguest | !Auth::check() | 未ログインのみ |
@can / @endcan | Gate::allows() | 権限あり |
@cannot / @endcannot | Gate::denies() | 権限なし |
@switch / @endswitch | switch {} | 多分岐 |
@production | app()->environment('production') | 本番のみ |
@env('local') | app()->environment('local') | 環境別 |
FAQ
Q: @if と {{ ... ? ... : ... }} どちらを使う?
A: ブロック (タグ複数行) は @if、属性値や 1 つの値なら三項演算子 / null 合体演算子 ??。
Q: @if(isset($var)) と @isset($var) どちらが良い?
A: 短い @isset を推奨。意図が明確で @endisset によりブロック範囲も分かりやすい。
Q: Blade のコンパイル結果を見たい
A: storage/framework/views/ に .php ファイルが生成される。php artisan view:clear でクリア。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?