【问题标题】:Include inside section doesn't work Laravel Blade包含内部部分不起作用 Laravel Blade
【发布时间】:2019-11-25 03:15:16
【问题描述】:

我的子模板中有一个@section,我试图在其中包含另一个模板,但它不起作用。 我的父模板如下所示:

<!DOCTYPE html>
<html lang="en">
<head>

    <!-- X-csrf token -->

    <meta name="csrf-token" content="{{ csrf_token() }}">

    {{-- Custom CSS --}}

    @yield('head')

    {{-- Open Sans font --}}

    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300&display=swap" rel="stylesheet">

    <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>{{$title}}</title>
</head>
<body>

    @yield('content')

    @yield('footer')

</body>

    {{-- JS files --}}

    @yield('javascript')

</html>

我的孩子模板代码:

@extends('layouts.app')

{{-- /////////////////////////////////////////////////////////////////// --}}

@section('head')

    {{-- Custom CSS for index page --}}

    <link rel="stylesheet" type="text/css" href="{{asset('css/index.css')}}">

@endsection

{{-- /////////////////////////////////////////////////////////////////// --}}

@section('header')

    <header>

        @include('navbar')

    </header>

@endsection

{{-- /////////////////////////////////////////////////////////////////// --}}

@section('content')

    <section>

        <div class="entry-texts">

            <h1 class="entry-title">Welcome to my page!</h1>

            <h2 class="entry-subtitle">Must be some text in here.</h2>

        </div>

    </section>

@endsection

{{-- /////////////////////////////////////////////////////////////////// --}}

@section('footer')

    <footer>

    </footer>

@endsection

{{-- /////////////////////////////////////////////////////////////////// --}}

@section('javascript')



@endsection

问题出在这部分:

@section('header')

    <header>

        @include('navbar')

    </header>

@endsection

标题标签中不包含我的导航栏。我的导航栏文件位于views 目录中。有什么问题,我在这里做错了什么?

【问题讨论】:

    标签: laravel laravel-blade


    【解决方案1】:

    您的父模板没有@yield('header'),而您的navbar 位于名为@section('header') 的部分中

    【讨论】:

      【解决方案2】:

      您正在生成 head,但使用的是 header 部分。这就是问题。 使用@section('head')

      【讨论】:

        【解决方案3】:

        你应该试试这个:

        <!DOCTYPE html>
        <html lang="en">
        <head>
        
            <!-- X-csrf token -->
        
            <meta name="csrf-token" content="{{ csrf_token() }}">
        
            {{-- Custom CSS --}}
        
            @section('head')
        
            {{-- Open Sans font --}}
        
            <link href="https://fonts.googleapis.com/css?family=Open+Sans:300&display=swap" rel="stylesheet">
        
            <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>{{$title}}</title>
        </head>
        <body>
        
            @yield('content')
        
            @yield('footer')
        
        </body>
        
            {{-- JS files --}}
        
            @yield('javascript')
        
        </html>
        

        【讨论】:

          【解决方案4】:

          只是一点说明。您的 head 部分应以 stop 结尾,以生成脚本和样式:

          @section('head')
          
              {{-- Custom CSS for index page --}}
          
              <link rel="stylesheet" type="text/css" href="{{asset('css/index.css')}}">
          
          @stop
          

          【讨论】:

          • 所以我不再需要@endsection 了吗?
          • 是的。你不需要它
          猜你喜欢
          • 1970-01-01
          • 2017-12-12
          • 2017-01-07
          • 2017-06-21
          • 1970-01-01
          • 2013-06-18
          • 2018-06-08
          • 1970-01-01
          • 2015-01-30
          相关资源
          最近更新 更多