59031
bladeで各ページ共通のヘッダー(あるいはフッター)を作りたいのですが、linkタグも含めて便利に使い回せるようにできますでしょうか。  
例えばこんな感じのヘッダーです。

```

    <link href='/css/header.css' rel='stylesheet'>
    <div>abc</div>
    
```

div部分だけならbodyタグ内だけなので簡単だと思うのですが、linkタグ部分はheadタグ内に配置したいです。  
その場合に@ディレクティブ(@sectionなど)をどのように作成すれば良いでしょうか。  
(一応linkタグでもbody内に置けますが今回それは考えません)
CC BY-SA 4.0
2019-09-12T11:42:18.467
59023
2019-09-13T04:26:54.330
34267
question
php laravel
bladeでヘッダーを使い回したい
もっともシンプルに行うなら継承（extend）を利用してください。

まずはベースとなるcommonのレイアウトを作ります。  
もっともシンプルなbody>header,content,footer というレイアウトだとすると

```

    <!-- Stored in resources/views/layouts/common.blade.php -->
    
    <html>
        <head>
            <title>App Name - @yield('title')</title>
            <link href='/css/header.css' rel='stylesheet'>
        </head>
        <body>
            <div id="header">abc</div>
            <div class="content">
                @yield('content')
            </div>
            <div id="footer">abc</div>
        </body>
    </html>
    
```

それらを利用したいviewで継承（extend）を利用します。

```

    <!-- Stored in resources/views/index.blade.php -->
    
    @extends('layouts.common')
    
    @section('title', 'index Page')
    
    @section('content')
        <p>This is index body content.</p>
    @endsection
    
```

例えばindex2という同じようなページを利用する場合です。

```

    <!-- Stored in resources/views/index2.blade.php -->
    
    @extends('layouts.common')
    
    @section('title', 'index2 Page')
    
    @section('content')
        <p>This is index2 body content.</p>
    @endsection
    
```

参考  
<https://laravel.com/docs/5.8/blade>  
<https://qiita.com/makies/items/2ab24188e7f8482bfddc>
CC BY-SA 4.0
2019-09-13T04:26:54.330
59031
2019-09-13T04:26:54.330
22665
59023
answer