Cidius Asked: 2020-09-24 07:39:10 +0800 CST 2020-09-24 07:39:10 +0800 CST 2020-09-24 07:39:10 +0800 CST Laravel Blade 中 @yield 和 @include 的区别 772 大家好,我想知道是否有任何技术差异,原则上和我给他们的功能,他们的工作方式是一样的。 使用起来似乎更清晰@include。但我想知道是否有任何我应该知道的细节,以免滥用它。 php 2 Answers Voted Luis Morales 2020-09-24T08:18:14+08:002020-09-24T08:18:14+08:00 例如,我认为不同之处在于它是如何在代码中实现的。 如果您@include喜欢在PHP中实现,那就是它仅适用于您从另一个站点调用的特定代码,而不是@yield您放置一个“名称”以某种方式放置它。也就是说,@yield('contenido')可以从引用该内容的其他视图中显示该内容@yield。 显然,在代码中,您将扩展名扩展到yield. 我就是这么看的。@yield一个用于多个呼叫,一个@include用于特定呼叫。 Best Answer Shaz 2020-09-24T08:37:22+08:002020-09-24T08:37:22+08:00 @yield它将查找在当前页面(或视图)中建立的部分并将其显示在该位置,它还可以添加默认值以防该部分中没有任何内容。 这@yield('titulo', 'Mi sitio')将包括@section Blog @endsection视图中定义的任何内容(在本例中为博客文本),如果未定义任何内容,它将显示我的站点文本。 @yield 的源代码是: protected function compileYield($expression) { return "<?php echo \$__env->yieldContent{$expression}; ?>"; } public function yieldContent($section, $default = '') { $sectionContent = $default; if (isset($this->sections[$section])) { $sectionContent = $this->sections[$section]; } $sectionContent = str_replace('@@parent', '--parent--holder--', $sectionContent); return str_replace( '--parent--holder--', '@parent', str_replace('@parent', '', $sectionContent) ); } @include它只会在当前视图中包含另一个视图,这样@include('blog.articulo')它将搜索文件views\blog\articulo.blade.php并将其包含在当前视图中,包括其所有内容。 @include 的源代码是: protected function compileInclude($expression) { if (Str::startsWith($expression, '(')) { $expression = substr($expression, 1, -1); } return "<?php echo \$__env->make($expression, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; }
例如,我认为不同之处在于它是如何在代码中实现的。
如果您
@include
喜欢在PHP中实现,那就是它仅适用于您从另一个站点调用的特定代码,而不是@yield
您放置一个“名称”以某种方式放置它。也就是说,@yield('contenido')
可以从引用该内容的其他视图中显示该内容@yield
。显然,在代码中,您将扩展名扩展到
yield
.我就是这么看的。
@yield
一个用于多个呼叫,一个@include
用于特定呼叫。@yield
它将查找在当前页面(或视图)中建立的部分并将其显示在该位置,它还可以添加默认值以防该部分中没有任何内容。这
@yield('titulo', 'Mi sitio')
将包括@section Blog @endsection
视图中定义的任何内容(在本例中为博客文本),如果未定义任何内容,它将显示我的站点文本。@yield 的源代码是:
@include
它只会在当前视图中包含另一个视图,这样@include('blog.articulo')
它将搜索文件views\blog\articulo.blade.php
并将其包含在当前视图中,包括其所有内容。@include 的源代码是: