如何在Laravel的刀片引擎中的另一个视图内插入一个视图

时间:2018-12-14 06:07:42

标签: php laravel view laravel-blade

如何在laravel的刀片引擎中的另一个视图内插入视图刀片

我正在一个项目中,该项目包含:    主视图......“ home.blade.php

我想添加另一个页面“ home2.blade.php

所以最终我得到了一个页面,即“ home.blade.php ”,但其中包含“ home2.blade.php

这是home2.blade.php

@extends('layouts.app')

@section('content')

<!-- All Posts -->
@if(count($posts) > 0)

<div class="panel panel-default">
    <div class="panel-heading">
        All Posts
    </div>

    <div class="panel-body">
        <table class="table table-striped task-table">

            <!-- Table Headings -->
            <thead>
                <th>Title</th>
                <th>Content</th>
            </thead>

            <!-- Table Body -->
            <tbody>
            @foreach($posts as $post)
                <tr>
                    <td class="table-text">
                        <div>{{$post->title}}</div>
                    </td>
                    <td class="table-text">
                        <div>{{$post->content}}</div>
                    </td>
                </tr>
            @endforeach
            </tbody>
        </table>
    </div>
</div>

  @endif

  @endsection

这是“ home.blade.php

<html lang="en">
<head>
<meta charset="utf-8">

</head>

 <body data-spy="scroll" data-offset="0" data-target="#navigation">


  <!-- Fixed navbar -->
  <div id="navigation" class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" 
  data-target=".navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>

    </div>

3 个答案:

答案 0 :(得分:0)

在home.blade.php中使用include()

例如:如果您的home2位于resources/views/

@include('home2')

答案 1 :(得分:0)

您可以使用@include('filename')指令。 laravel documentation

<html lang="en">

<head>
    <meta charset="utf-8">

</head>

<body data-spy="scroll" data-offset="0" data-target="#navigation">

<!-- Fixed navbar -->
<div id="navigation" class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

        </div>

        @include('home2') <-- your home2.blade.php file will be added here

答案 2 :(得分:0)

好吧,这是我尝试过的方法,我可以确认至少在Laravel 5+(我有L5.2)上可以使用。这是我建议您使用刀片模板的方式。

让我们开始说,要让一个部分成为另一个部分,您必须在定义容器部分之前定义包含的部分。因此,我很清楚地解决了这种情况:

我有一个主刀片(main.blade.php)模板,其内容如下:

<section class="content">
  <!-- Your Page Content Here -->
  @yield('main-content')
</section><!-- /.content -->

我有第二个刀片(common.blade.php)模板,该模板具有您可能希望在许多页面上显示的通用内容以及定义了主要内容部分的位置。这看起来像:

@section('main-content')
   <div class="container">
      @yield('extra-content')
   </div>
@endsection

最后,我得到了第三个模板(test.blade.php),该模板扩展了主模板并包含了我想显示的常见内容,但是要小心,因为顺序很重要。这看起来像:

@extends('main')
@section('extra-content')
   <div>
      <span> This is a test! </span>
   </div>
@endsection
@include('common')

在控制器或路线中(无论返回视图的位置),您都应该返回第三个模板。

希望这对您有帮助