Laravel Blade模板@yield内容未加载问题求助
问题分析与解决
兄弟,你这问题其实出在路由的返回视图设置上,模板继承的写法本身是完全没问题的!
核心错误点
你当前的路由直接返回了母版模板master:
Route::get('/', function () { return view('master'); });
直接返回master视图的话,Laravel只会渲染它自身包含的head、header、footer,以及@yield('content')的默认空内容——因为你根本没调用继承它的home视图,自然不会加载home里的自定义内容。
修正方法
把路由里的视图名称改成home就行,因为home才是继承了master的子视图,Laravel会自动处理模板继承的渲染逻辑:
Route::get('/', function () { return view('home'); });
原理说明
当你返回home视图时,Laravel会按以下流程处理:
- 加载
home.blade.php,识别到它通过@extends('master')继承了母版模板 - 加载
master.blade.php作为基础框架 - 把
home里定义的@section('content')内容,填充到master的@yield('content')位置 - 最后整合所有部分,输出包含
home内容的完整页面
修改后再访问首页,就能看到home里的test内容啦!
内容的提问来源于stack exchange,提问作者twan
相关产品推荐
相关产品推荐

