平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【PHP】Laravel_viewのテンプレート継承

はじめに

Laravelで使用されるBladeファイルと テンプレートの継承方法について学んだので記載する。

参照ドキュメント https://readouble.com/laravel/7.x/ja/blade.html

環境

Laravel7.3

Blade形式について

BladeはLaravelのテンプレート形式の一種で拡張子はblade.phpです。 特徴としては基本はHTMLで記述しますが、PHPのコードを記述できることが特徴です。

<!DOCTYPE HTML>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="csrf-token" content="{{ csrf_token() }}">
        <title>test</title>
    </head>
    <body>
        @include('parts.header')
        @yield('content')
    </body>
</html>

テンプレート継承について

以下の記述によって、部分テンプレートとして取り込んでいる。
ここでは(resources/views)/parts/header.blade.phpを取り込んでいる

@include('parts.header')

レイアウトの子ビューを定義するにはビューに以下のように記載する。

@extends('layouts.common')
# 継承する親ビューを指定する。ここでは/layouts/common.blade.phpを示す

@section('content')  
# @section~@endsectionまで@yield('content')に挿入される

@endsection