Laravel Bladeでの条件付き拡張方法


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で条件付きの拡張を行う方法です。必要に応じて、他のディレクティブやコードを使用してさらなる条件分岐や拡張を行うことも可能です。