You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel新手咨询:如何用@yield引入journal目录下的局部视图

解答:Laravel中用@yield替代@include引入局部视图的可行方案

嘿,作为Laravel新手碰到布局相关的疑问太正常了,我来给你理清楚@yield和@include的核心区别,以及怎么实现你想要的需求~

首先明确:@yield本身不能直接引入局部视图,它的作用是在父视图中定义「占位槽」,需要子视图用@section填充内容;而@include是直接插入并渲染指定的局部视图。不过你想要用@yield的思路来管理这两个局部视图是完全可行的,只是需要结合@section来实现,下面给你两种适配不同需求的方案:

方案一:支持后续覆盖的动态占位(推荐)

如果你希望这两个局部视图的内容未来可以被其他继承detailsjournal.blade.php的视图替换,那可以给@yield设置默认内容,默认内容就是引入你的局部视图。

步骤1:修改journal/detailsjournal.blade.php

把它变成一个中间布局,继承默认布局的同时,定义带默认内容的yield占位:

@extends('layouts.default')

@section('content')
    <div class="journal-container">
        {{-- 左侧区域:默认加载leftSection,允许后续被覆盖 --}}
        @yield('left-section', view('journal.partials.leftSection'))
        
        {{-- 右侧区域:默认加载rightSection,允许后续被覆盖 --}}
        @yield('right-section', view('journal.partials.rightSection'))
    </div>
@endsection

效果说明

  • 当你直接访问detailsjournal视图时,@yield会自动渲染默认的leftSection和rightSection局部视图,效果和@include完全一致。
  • 如果之后你需要创建一个自定义的视图(比如journal/customDetails.blade.php),想要替换左侧区域的内容,只需要继承detailsjournal并覆盖对应的section即可:
@extends('journal.detailsjournal')

@section('left-section')
    {{-- 这里写你自定义的左侧内容,会替换原来的leftSection --}}
    <div class="custom-left-panel">
        <h3>自定义左侧标题</h3>
        <p>自定义内容...</p>
    </div>
@endsection

方案二:单纯用@yield包裹局部视图(无覆盖需求)

如果你只是想换一种写法,不需要后续覆盖内容,那可以先在detailsjournal中用@section包裹局部视图,再用@yield输出:

@extends('layouts.default')

{{-- 先定义左侧区域的section,内容为引入局部视图 --}}
@section('left-section')
    @include('journal.partials.leftSection')
@endsection

{{-- 定义右侧区域的section --}}
@section('right-section')
    @include('journal.partials.rightSection')
@endsection

@section('content')
    <div class="journal-container">
        {{-- 用@yield输出两个section的内容 --}}
        @yield('left-section')
        @yield('right-section')
    </div>
@endsection

这种写法和直接用@include效果完全一样,只是多了一层section的包裹,适合你单纯想体验@yield用法的场景。

核心总结

  • @yield的本质是「占位+渲染section内容」,不能直接加载视图,必须配合@section使用。
  • 如果需要动态替换内容,方案一是最优解;如果只是换写法,方案二也可以,但其实@include更直接高效。

内容的提问来源于stack exchange,提问作者Chandra Shekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:53:22