Bladeのレイアウトを使って拡張する
Blade
悩み事
いくつかのHTML要素を共通化させたい
すべてのHTMLページはいくつかの共通要素を持っています
ナビゲーションバー、コンテンツ領域、ヘッダーとフッターと云ったものです
これらを毎回コピーする事無く、レイアウトを利用してみましょう
解決方法
Bladeレイアウトを作成して利用します
Step 1 - レイアウトを作成
app/views/layouts/main.blade.php
を作成します
<html>
<head>
{{-- 共通のヘッダー要素 --}}
</head>
<body>
<div class="navigation">
@section('navigation')
<a href="/">Home</a>
<a href="/contact">Contact</a>
@show
</div>
<div class="container">
@yield('content')
</div>
</body>
</html>
Step 2 - レイアウトを利用する準備
@extends('layouts.main')
@section('content')
<p>
コンテンツ
</p>
@stop
@extends
を利用する場合、テンプレートの最初に記述しなければなりません
出力
レンダリングされたビューのHTMLは以下の様になります
<html>
<head>
</head>
<body>
<div class="navigation">
<a href="/">Home</a>
<a href="/contact">Contact</a>
</div>
<div class="container">
<p>
コンテンツ
</p>
</div>
</body>
</html>
アドバイス
すでに他のフレームワークでTwigやSmartyを利用した経験があれば、
同じ様な動作をさせる事が出来ます
Category
- App 29
- Artisan 28
- Auth 36
- Basic Development 4
- Blade 23
- Cache 25
- Config 5
- Configuration 12
- Controller 3
- Cookie 2
- Core Extension 7
- Crypt 6
- DB 4
- Database Configuration 3
- Eloquent 0
- File 26
- Form 30
- Hash 1
- Help 2
- Html 17
- Installation 13
- Lang 6
- Middleware 2
- Paginator 1
- Route 1
- Session 0
- Solution 2
- Service Provider 1
- Testing 2
- Packages by 3rd Parties 0