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
。
刚刚注意到 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
。