エンジニアのひよこ_level10

【毎日更新!】新卒2年目エンジニアブログです! プログラムだけじゃなく、マネジメントとかも書いていきたい!

【Laravel】各ページ同じヘッダーを使い回すbladeの構成【309日目】

こんな時

ページのヘッダーはどのページでも同じものを使うことよくありますよね。
こんな時、毎回コピペするのは面倒。

そんな時はこんな構成にしましょう。

使い回すテンプレート

web/study-laravel/resources/views/_layouts/default.blade.php

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{{ $__env->yieldContent('title') }}</title>
     <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
    @yield('content')
     <script src="{{ asset('js/app.js') }}"></script>
</body>
</html> 

注目するところ

<body>
    @yield('content')
</body>

こんなふうに、contentだけを、ページ毎に変えていく感じ。

content部分

web/study-laravel/resources/views/top.blade.php

@extends('user._layouts.default')
@section('title', 'TOPページ')
@section('content')
<div>
    <h3>TOPページ</h3>
</div>
<div>
    <p>Hello!</p>
</div>
@endsection 

注目するところ

@extends('user._layouts.default')
@section('content')
@endsection 

1.@extendsで、テンプレを指定する。
2.@section('content')と@endsectionの間にページを用意する感じ。

コピペは極力しないプログラミングをしよう!

コピペをするのは、二重管理をしてしまって、無駄なコードが増えたり、
管理が面倒になるので、極力コピペを避けるように、
綺麗なコードを書くようにしましょう!

例の構成

初回のページ作成 by klack710 · Pull Request #3 · klack710/study-laravel · GitHub