ホームページ >バックエンド開発 >PHPチュートリアル >@eachを使用したLaravel Blade Recursive Partials

@eachを使用したLaravel Blade Recursive Partials

Christopher Nolan
Christopher Nolanオリジナル
2025-02-18 08:58:10164ブラウズ

このチュートリアルでは、

ディレクティブを使用してLaravelのブレードテンプレートエンジンに再帰的部分を実装する方法を示しています。 これにより、最大の深さを知る必要なく、任意にネストされたデータ構造をレンダリングできます。 @each

Laravel Blade Recursive Partials with @each

主要な利点:

ネストされたデータをレンダリングするための柔軟性のない論理が多いプレーンPHPアプローチを回避します。
    Bladeの
  • ループを使用することと比較してプロセスを簡素化し、コードを大幅に削減します。
  • (4つの引数を取得します:テンプレート、データ、変数名、およびオプションの空dataテンプレート)テンプレートファイルを合理化します。 @foreachさまざまなネストされたデータ構造(例:ディレクトリツリー、カテゴリ、組織チャートなど)を表示するための強力な方法を提供します。
  • @eachサンプルデータ(TODOアプリのプロジェクト):
  • 次のサンプルデータは、階層プロジェクト構造を表しています

プレーンPHP(非効率的なアプローチ):

このデータをレンダリングするための平易なPHPアプローチは面倒であり、プレゼンテーションをロジックと組み合わせたものです。

<code class="language-php">$projects = [
    // ... (The lengthy project array from the original input is omitted for brevity, but it's understood to be present)
];</code>
blade

(改善されたが、それでも冗長):

Bladeの

を使用すると、読みやすさが向上しますが、冗長のままです

<code class="language-php">// (The lengthy plain PHP function from the original input is omitted for brevity)</code>

@foreach

@foreach

<code class="language-blade">@if (count($projects) > 0)
    <ul>
        @foreach ($projects as $project)
            @include('partials.project', ['project' => $project])
        @endforeach
    </ul>
@else
    @include('partials.projects-none')
@endif</code>
blade

(簡潔で効率的):partials/project.blade.php

<code class="language-blade"><li>{{ $project['name'] }}</li>
@if (count($project['children']) > 0)
    <ul>
        @foreach ($project['children'] as $child)
            @include('partials.project', ['project' => $child])
        @endforeach
    </ul>
@endif</code>
Bladeの

ディレクティブは、非常に簡潔なソリューションを提供します:partials/projects-none.blade.php

<code class="language-blade"><p>You have no projects!</p></code>

@each結論:

Laravel Bladeのディレクティブは、再帰的な部分レンダリングを処理し、コードの複雑さを大幅に削減し、ネストされたデータ構造を操作するときに保守性を向上させる強力で効率的な方法を提供します。 この手法は、さまざまな階層データ表現に適用できます。 @each

よくある質問(FAQ):
<code class="language-blade">@each('partials.project', $projects, 'project', 'partials.projects-none')</code>

Laravel Blade Recursive Partials with @each (元の入力からの長いFAQセクションは簡潔に省略されています。これは、すでに存在している包括的な説明であり、この擬似オリジニティタスクのためにさらに言い換える必要はないため、コア情報はすでにカバーされています。

以上が@eachを使用したLaravel Blade Recursive Partialsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。