gpt4 book ai didi

laravel - Blade中的Section和Stack有什么区别?

转载 作者:行者123 更新时间:2023-12-03 10:36:59 25 4
gpt4 key购买 nike

我们可以使用 section定义一些 HTML 然后 yield在别处。

那么为什么我们有堆栈呢? https://laravel.com/docs/5.2/blade#stacks

它使用不同的关键字做完全相同的事情,但选项较少(无继承)。

@push('scripts')
<script src="/example.js"></script>
@endpush

<head>
<!-- Head Contents -->

@stack('scripts')
</head>

可以用部分完成:
@section('scripts')
<script src="/example.js"></script>
@endsection

<head>
<!-- Head Contents -->

@yield('scripts')
</head>

最佳答案

我可能会弄错,但差异不仅在语义上,而且在行为上。
使用@push,您可以根据需要向堆栈追加多次,而(默认情况下)您只能在 View 中填充@section 一次。
在某些情况下,当您需要跨模板文件或循环添加来自不同位置的内容时,这会派上用场:

index.blade.php:

@extends('master')

...

@for ($i = 0; $i < 3; $i++)

@push('test-push')
<script type="text/javascript">
// Push {{ $i }}
</script>
@endpush

@section('test-section')
<script type="text/javascript">
// Section {{ $i }}
</script>
@endsection

@endfor

master.blade.php
    @stack('test-push')
@yield('test-section')
</body>

结果:
    <script type="text/javascript">
// Push 0
</script>
<script type="text/javascript">
// Push 1
</script>
<script type="text/javascript">
// Push 2
</script>
<script type="text/javascript">
// Section 0
</script>
</body>

关于laravel - Blade中的Section和Stack有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com