刀片语法@extends加载第二个HTML视图,然后加载第一个HTML视图

时间:2016-11-10 18:59:48

标签: php blade laravel-5.3 laravel-blade

我是laravel和刀片模板引擎的新手。 问题:文件form.blade.php

@extends(' front.header') @extends(' front.footer&#39)

首先加载front / footer.blade.php,然后加载front / header.blade.php的内容

请附上View Source的快照。

我在stackoverflow中检查了几个关于白色空间的答案。我似乎没有。

此致 Jignesh enter image description here

3 个答案:

答案 0 :(得分:1)

这就是我建议构建主模板的方法。

front._layouts.master:

<!DOCTYPE html>
<html>
<head>
  @include('front._layouts.head')
</head>
<body>
  <header>
      @include('front._layouts.header')
  </header>

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

  <footer>
    @include('front._layouts.header')
  </footer>
  @stack('scripts')
</body>
</html>

注意@stack()当您正在构建应用程序的强大部分时,这可能会有用。 Stacks 允许您将命名堆栈推送到彼此之上。

答案 1 :(得分:1)

请按照以下步骤操作:

第1步:

  

resources \ views创建一个文件,如:master.blade.php

第2步:

  

resources \ views创建一个文件夹,如:layouts

layout内置文件夹中创建header&amp; footer档案

第3步:

master.blade.php内写下你如何设计主模板。

<!DOCTYPE html>
<html lang="en">
    <head>
        <!-- your common css here -->

        @yield('partial-css')

    </head>

    <body>
        @include('layouts.top-header')             

        <div class="container">
            @yield('content') <!-- this is your common body -->
        </div> <!-- /container --> 

        @include('layouts.footer')

        <!-- your common js here or you also define inside the footer page -->

        @yield('script') <!-- this is your individual script for all page -->

    </body>
</html>

第4步: 现在,您对所有其他页面使用母版页,例如index.blade.php

@extends('master')

@section('content')

<!-- Here is your main body content -->

@endsection

@section('script')

<!-- Here is your individual script content -->

@endsection

希望您现在了解刀片模板的工作原理!

答案 2 :(得分:0)

你不能从2个父母那里@extends。如果您想要包含其他视图,则应使用@include代替

像这样:

@include('front.header')
Content
@include('front.footer')