Laravel产量不显示内容

时间:2018-01-07 10:28:47

标签: php laravel-5.4 yield

Yield函数不会在其他文件中加载特定部分。

路线

Route::get('/', function () {
    return view('add-listing');
});

添加-listing.blade.php

@extends('layout')

@section('body')
  This is add-listing page
@stop

header.blade.php

@extends('layout')

@section('header')
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <title>Find Do Responsive Directory Template</title>
    <link rel="stylesheet" type="text/css" href="css/master.css">
    <link rel="stylesheet" type="text/css" href="css/color-green.css">
    <link rel="stylesheet" type="text/css" href="css/app.css">
    <link rel="shortcut icon" href="images/short_icon.png">
@stop

layout.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    @yield('header')
</head>
<body>

    @yield('body')

</body>

当我运行时,只加载@section('body')内容。它没有加载@section('header')。那是为什么?

2 个答案:

答案 0 :(得分:1)

您可以在布局中使用@include('header')

<!DOCTYPE html>
<html lang="en">
<head>
    @include('header')
</head>
<body>

    @yield('body')

</body>

header.blade.php

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <title>Find Do Responsive Directory Template</title>
    <link rel="stylesheet" type="text/css" href="css/master.css">
    <link rel="stylesheet" type="text/css" href="css/color-green.css">
    <link rel="stylesheet" type="text/css" href="css/app.css">
    <link rel="shortcut icon" href="images/short_icon.png">

答案 1 :(得分:0)

在这个示例中,您调用add-listing.blade.php,在此文件中,您只是调用layout.blade,因此您的刀片不会调用header.blade,只需为get header内容准备一个部分,然后你就不要# 39; t在你的流程中调用header.blade。

收益率是一个可以按部分设置的变量:

@yield(&#39;标题&#39;)~echo $ header

@section(&#39;头&#39)

标头值在这里

@endsection

所以$ header =标头值就在这里。