元素在Laravel中以相反的顺序显示在网页上

时间:2019-07-17 13:56:10

标签: php laravel laravel-blade

在laravel /resources/view/layout文件夹中,我有header.blade.phpfooter.blade.php

我在/resources/view中还有另一个名为page1.blade.php的文件。

page1是@extends('layout.haeder') @extends('layout.footer')

当我看到http://127.0.0.1:8000/page1

问题是所有元素都以相反的顺序显示。从上到下显示。首先显示页脚,然后显示页眉。我该怎么办?

资源/视图/页面1

@extends('layout.header')
@extends('layout.footer')

路由/网络

Route::get('/page1', function () {
    return view('page1');
});

1 个答案:

答案 0 :(得分:1)

  1. /resources/view/layout内创建一个名为main.blade.php的新刀片文件。 这是您的布局。 根据您的需要,应该是这样的:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Example</title>
</head>
<body>
@include('partials.header')
@yield('content')
</body>
</html>
  1. main.blade.php内部,我们使用了@include(partials.header),它实际上是位于/resources/view/partials上的刀片文件,它是 partial ,因此您可以多次使用它(另一个布局中的示例) 它可以包括这样的内容(或您想要的任何内容):
<nav>
    <ul>
        <li>
            <a href="/">Nav 1</a>
        </li>
        <li>
            <a href="/">Nav 2</a>
        </li>
        <li>
            <a href="/">Nav 3</a>
        </li>
    </ul>
</nav>
  1. 在您的page1.blade.php中,您可以扩展(使用)构建的版面,并添加其唯一的 content (其中将替换@yield('content')部分在main.blade.php布局中) 所以可能是这样:
@extends('layout.main')

@section('content)
<h1>Hello World</h1>
<p>this is page content ... </p>
@endsection
  1. 最后,当您在浏览器中输入 page1 时,Laravel会为您提供一个页面,其中包含以下内容:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Example</title>
</head>
<body>
<nav>
    <ul>
        <li>
            <a href="/">Nav 1</a>
        </li>
        <li>
            <a href="/">Nav 2</a>
        </li>
        <li>
            <a href="/">Nav 3</a>
        </li>
    </ul>
</nav>
<h1>Hello World</h1>
<p>this is page content ... </p>
</body>
</html>

PS:您可以在Laravel Documentation

中了解有关布局和局部的更多信息。