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

时间:2015-03-31 15:04:27

标签: php laravel laravel-5 blade

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

这是一个错误还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试使用@overwrite代替@endsection(从Laravel 3开始就是deprecated - 在基本情况下你应该使用@stop。)