-1

ルートに複数のビューを含めることはできますか? これを行うためのベスト プラクティスは何ですか。たとえば、構成ファイル、ヘッダー、コンテンツ、およびフッター ファイルを結合してビューにロードするとします。ルートで行う場合、ルート リクエストに基づいてコンテンツを簡単に変更できます。

ありがとうございました。

4

2 に答える 2

4

Laravel's Blade templating を詳しく調べる必要があります。Blade テンプレートを使用すると、レイアウトを作成し、それらを相互にカスケードすることができます。たとえば、次のルートを見てみましょう...

app/routes.php

Route::get('about', function()
{
    return View::make('about');
});

Route::get('contact', function()
{
    return View::make('content')
});

ご覧のとおり、これら 2 つの異なる要求に対して 2 つの異なるビューがあります。ただし、Blade テンプレートとセクションを使用すると、マスター レイアウトを作成し、必要なコンテンツのみを変更できます。マスター レイアウトは次のようになります。

アプリ/ビュー/レイアウト/master.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Site Title</title>
</head>
<body>
    <nav>
        <ul>
            <li>Home</li>
            <li>About</li>
            <li>Contact</li>
        </ul>
    </nav>

    @yield('content')

</body>
</html>

これがマスター レイアウトです。常に同じままであるナビゲーション、HTML とヘッド、および何度も何度も書きたくないすべてのものがあります。yieldただし、コンテンツを受け入れてそこに配置するために in Bladeも使用しています。これが、routes.php からの実際のビューの出番です。

アプリ/ビュー/about.blade.php

@extends('layouts.master')

@section('content')
    <p>This is the about me content.</p>
@endsection

マスター レイアウトを拡張し、contentセクション内にコンテンツを配置するだけで、任意の名前を付けることができます。他のページと同様、お問い合わせください。

アプリ/ビュー/contact.blade.php

@extends('layouts.master')

@section('content')
    <p>This is the contact page content.</p>
@endsection

ご覧のとおり、複数のビューを含めるというよりは、さまざまなビューを拡張し、Blade を使用してそれらをまとめることが目的です。

于 2013-11-08T06:36:31.210 に答える