@foreach中的@include会继续使用集合的第一个元素

时间:2019-01-21 05:01:11

标签: laravel laravel-blade

在一个视图内,我试图@include像这样的组件:

@foreach($products as $product)
    <div class="col m4">
        {{$product -> model}}
        @include('components.thumb-product', ['model' => $product -> model])
    </div>
@endforeach

components.thumb产品的内容:

@extends('layouts.cards.thumb-product-a')
@section('model')
    {{$model}}
    {{$product -> model}}
@endsection

我在$ products中有5个不同的元素,并且每次迭代时@include('components.thumb-product')都会一直输出第一个元素。

但是在@foreach中,{{$ product-> model}}(在@include之前)输出了我期望的结果:

  

DBTPI0PGC2,OWQE,TDH,8WFXWRGL,C4M

@include('components.thumb-product'),{{$ model}}和{{$ product-> model}}输出:

  

DBTPI0PGC2,DBTPI0PGC2,DBTPI0PGC2,DBTPI0PGC2,DBTPI0PGC2

     

DBTPI0PGC2,DBTPI0PGC2,DBTPI0PGC2,DBTPI0PGC2,DBTPI0PGC2

我无法解决这种情况,我是否应该使用@include以外的其他东西? 请给我看看路。

1 个答案:

答案 0 :(得分:1)

尝试在组件中使用@overwrite而不是@endsection 。

@section('model')
    {{$model}}
    {{$product -> model}}
@overwrite
@extends('layouts.cards.thumb-product-a')

我遇到了同样的问题。