35

Laravel docsから、次の 2 つの方法を使用してレイアウト内に「セクション」を含めることができます。

<html>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show

        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

@yieldを使用していくつかのデフォルト コンテンツを渡すこともできる@yield('section', 'Default Content')ため、@yield使用@sectionしない@parent?

@section
    <!-- Nothing here -->
@show

他にどのような違いがありますか?

4

5 に答える 5

41

@parentこの行は混乱を解消します。「Blade レイアウトを拡張するビューは、単にレイアウトのセクションをオーバーライドすることに注意してください。セクションのディレクティブを使用して、レイアウトのコンテンツを子ビューに含めることができます」。

そのため、マスター レイアウトでが既に定義されている場合は、子レイアウトの 内で@section指定しない限りオーバーライドされます。@parent@section

ただし、 の@yield場合、常に子レイアウトからセクションを取得します。つまり@yield、デフォルトが として定義されている場合でも、常にパーツをオーバーライドします@yield('section', 'Default Content')

混乱が解消されることを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。ありがとう

于 2015-03-16T06:14:41.270 に答える