Laravel 5 - 扩展模板中的潜在错误(@yield、@extends)

Laravel 5 - potential bug in extended templates (@yield, @extends)

刚刚注意到 Laravel 5 中扩展视图的奇怪行为。这似乎是 Laravel 中的一个错误,我准备了简单的代码以便您可以轻松地重现它:

控制器:

$items = [
    ['id' => 1],
    ['id' => 2],
];

return view('list', [
    'items' => $items
]);

list.blade.php:

@foreach ($items as $item)
  @include('single-extended', $item)
@endforeach

single.blade.php:

<div>id: {{ $id }}</div>

@yield('block')

单-extended.blade.php:

@extends('single')

@section('block')
  <div>id in extended: {{ $id }}</div>
@endsection

当前输出:

id: 1
id in extended: 1
id: 2
id in extended: 1

预期输出:

id: 1
id in extended: 1
id: 2
id in extended: 2

是bug还是我做错了什么?

尝试使用 @overwrite 而不是 @endsection(顺便说一下 deprecated,因为 Laravel 3 - 在基本情况下您应该使用 @stop