在Laravel中,有不同的节使用方式:

@yield('section1') // Filled in by child view

@section('section2')
    // Default content, can be overwritten by child
    // Different ways of closing the section
@endsection|stop|show|append

谁能告诉我所有这些之间的确切区别是什么?

根据this,@stop和@endsection可能是相同的.(其中一个已被弃用,但已不再适用)

推荐答案

@endsection@stop是相同的,表示节的结束.

在执行@yield('sectionname')次操作之前,该部分实际上不会呈现在页面上

相比之下,@show相当于

@stop
@yield('sectionname')

i、 e.它停止并立即呈现页面该部分的部分.

@append基本上相当于:

//FileA.blade.php
@section('sectionname')
 ... content
@stop

//FileB.blade.php
@extends('fileA')

@section('sectionname')
    @parent
    ... more content after content
@stop

以下是一些相关的source code:

protected function compileStop() {
    return '<?php $__env->stopSection(); ?>';
}
protected function compileEndsection() {
    return '<?php $__env->stopSection(); ?>'; //Same code
}

protected function compileShow() {
    return '<?php echo $__env->yieldSection(); ?>';
}

Yield部分只是停止当前部分并生成其内容.

Laravel相关问答推荐

使用MAATWebSite/EXCEL导入Exel时,不会创建Laravel模型

到查询构建器的MySQL查询

Livewire 3软件包开发

assertSee 由于 html 代码中的空格而失败

如何在 laravel 中为另一个用户 session()->forget('cart')?

Laravel 5 - 更改模型文件位置

Laravel 5 将错误发送到Electron邮件

Laravel中具有两个外键字段的数据库一对多

路由中间的可选参数

如何使用 Eloquent Laravel 更新集合

Laravel Artisan Scheduler 中的链式命令?

Laravel - 批量分配异常错误

Laravel 说 Auth guard [] 没有定义

laravel 搜索多个以空格分隔的单词

Laravel 无法创建根目录

Laravel Queue,Beanstalkd vs Database,有什么区别?

如何在 laravel 用户删除中重置自动增量?

登录后 DevTools 无法解析 SourceMap 错误将重定向到该 js 文件

Laravel 5 new auth:获取当前用户以及如何实现角色?

函数参数前的三个点代表什么?