ルートに複数のビューを含めることはできますか? これを行うためのベスト プラクティスは何ですか。たとえば、構成ファイル、ヘッダー、コンテンツ、およびフッター ファイルを結合してビューにロードするとします。ルートで行う場合、ルート リクエストに基づいてコンテンツを簡単に変更できます。
ありがとうございました。
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 を使用してそれらをまとめることが目的です。