- Laravel版本:v8.41.0
- PHP版本:8.0.5
- Sail版本:v1.5.1
描述:
我有一个a.blade.php视图,它在body中包含一个类似的@yield指令
@yield('post_body_scripts')
然后,该视图包含在另一个视图中,b.blade.php,该视图保存post_body_scripts部分的数据
@extends('partials.layouts.app')
...
@include('c', ['foo' => 'bar'])
@section('post_body_scripts')
<script src="{{ asset('js/b.js') }}"></script>
@endsection
包含的c视图包含post_body_scripts部分的另一部分
@section('post_body_scripts')
@parent
<script src="https://cdn/ajsfile.js"></script>
@endsection
@pparent指令正常工作,但当视图的呈现启动时,会显示一个标签起始占位符
<?php $__env->startSection('post_body_scripts'); ?>
##parent-placeholder-1a5ac98c3addb84257eb2d5b7ffee8f1cbf3b352##
<script src="https://cdn/ajsfile.js"></script>
<?php $__env->stopSection(); ?><?php /**PATH /var/www/html/resources/views/c.blade.php ENDPATH**/ ?>
复制步骤:
- 创建一个包含@yield指令的基础视图
- 创建一个扩展前一个视图的视图,并对前一个yield使用@section指令
- 在点2创建的视图中包括另一个子视图
- 在第3点包含的视图中,对于声明的yield,使用@section指令,该指令以@pparent开头
更新
正如在评论中通知我的那样,我尝试使用@stack指令,但问题仍然存在。
a.blade.php
@stack('post_body_scripts')
b.blade.php
@push('post_body_scripts')
....
@endpush
c.blade.php
@push('post_body_scripts')
@parent
....
@endpush
删除@parent
@parent not use with @stack or @push