[英]How can I insert a view inside another view in blade engine in Laravel
如何在Laravel的刀片引擎中将视图刀片插入另一个视图中
我正在一个包含以下内容的项目中工作:主页视图......“ home.blade.php ”
我想添加另一个页面“ home2.blade.php ”
所以最后我得到了1个页面,即“ 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>
在home.blade.php中使用include()
例如:如果您的home2位于resources/views/
@include('home2')
您可以使用@include('filename')
指令。 laravel文档
<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
好的,这就是我尝试过的方法,我可以确认这一点,至少对于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')
在您的控制器或路线中(无论返回视图的位置),都应返回第三个模板。
希望这个能对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.