Bladeテンプレートで条件付きの拡張を行うには、@extends
ディレクティブと@if
ディレクティブを組み合わせることができます。まず、拡張元のテンプレートを作成します。例えば、base.blade.php
というファイルを作成しましょう。
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
次に、条件に応じて拡張元のテンプレートを切り替えるための条件文を追加します。例えば、特定の条件が満たされた場合にのみbase.blade.php
を拡張するとします。
@extends($condition ? 'base' : 'alternative')
$condition
は、条件を評価するための変数やロジックです。この変数やロジックを適切に設定して、拡張元のテンプレートを選択できるようにしてください。
ここで、@yield
ディレクティブを使用して、拡張元のテンプレート内で定義されたセクションを表示します。例えば、@yield('title')
は、拡張先のテンプレートで@section('title')
で定義された内容を表示します。
@section('title', 'ブログ投稿')
これにより、拡張先のテンプレート内で@section
ディレクティブを使用して、タイトルを設定することができます。
条件付きの拡張を行う他の方法として、@if
ディレクティブを使用する方法もあります。例えば、特定の条件が満たされた場合にのみ、特定のセクションを表示するとします。
@if($condition)
@section('sidebar')
// サイドバーのコンテンツ
@endsection
@endif
このようにすることで、$condition
が真の場合にのみ、サイドバーのセクションが表示されるようになります。
以上が、Laravel Bladeで条件付きの拡張を行う方法です。必要に応じて、他のディレクティブやコードを使用してさらなる条件分岐や拡張を行うことも可能です。