为啥我的@yield() 没有显示内容?在 Laravel PHP 模板中

Posted

技术标签:

【中文标题】为啥我的@yield() 没有显示内容?在 Laravel PHP 模板中【英文标题】:why my @yield() is not showing the content? in Laravel PHP template为什么我的@yield() 没有显示内容?在 Laravel PHP 模板中 【发布时间】:2021-07-28 08:59:58 【问题描述】:

您好,我正在尝试学习 laravel,但在使用 @yeild 时,我在模板中不显示内容时偶然发现了这个问题,它只显示主刀片文件的内容,并且确实不在孩子中显示@section

下面是我的代码,我做错了什么?我该如何解决这个问题?


views/layouts/sample1_template.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <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>Layout1</title>
</head>
<body>
    <h1>HEADER</h1>
    
    @yield('contentx')

    <h1>Footer</h1>
</body>
</html>

views/sample1_content.blade.php

@extends('layouts.sample1_template')

@section('contentx')

<h1> Content body </h1>

@endsection

在 web.php 中

Route::get('/sampleLayout', function() 
    return view('layouts.sample1_template');
);

【问题讨论】:

看不到您的代码请更新您的帖子 【参考方案1】:

你的问题是你在你的Route中仍然使用layouts.sample1_template,而你应该使用sample1_content

所以,将Route 代码更改为:

Route::get('/sampleLayout', function() 
    return view('sample1_content');
);

【讨论】:

感谢它的工作,这让我很奇怪为什么我们渲染子视图而不是父视图 那是因为你使用@extends,这样你就说“孩子,使用这个基本布局,但是在那个布局上改变这个”,引用孩子的唯一方法是做什么我在回答中说过。始终引用孩子。

以上是关于为啥我的@yield() 没有显示内容?在 Laravel PHP 模板中的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Blade 模板内容显示两次?

为啥我的 Listview 没有在我的活动中显示任何内容?

为啥我的 UIView 中没有显示任何内容?

为啥我的 UIScrollView 中的 WKWebview 没有显示?

为啥我的最新提交没有显示,只有以前的提交

为啥我的 RecyclerView 不显示任何内容?