php - Laravel Blade:@stop VS @show VS @endsection VS @append
问题描述
在 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')
即它停止并立即在页面的该部分呈现该部分。
@append
基本上相当于:
//FileA.blade.php
@section('sectionname')
... content
@stop
//FileB.blade.php
@extends('fileA')
@section('sectionname')
@parent
... more content after content
@stop
这是一些相关的源代码:
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 部分只是停止当前部分并产生其内容。
推荐阅读
- javascript - 在快速应用程序的函数中返回响应
- r - R:多个一致宽度的分箱问题
- c - 使用 switchcontext 时 C 中的信号
- c# - 实体框架引发错误 - 列名 'Id' 无效。\r\n 列名 'Id' 无效。"
- javascript - 如何在 JavaScript 中展平模板字符串
- rascal - Rascal 中的列表理解错误“set [Declaration] 不支持下标”
- classpath - 如何识别infinispan配置xml文件的路径
- image-processing - 将栅格转换为矩阵
- titanium - Titanium Appcelerator **构建失败**
- gitlab - 如何通过命令行在 .gitattributes 文件中设置文件属性