包含的刀片模板在每个foreach循环迭代中重复

时间:2015-04-15 09:53:43

标签: php laravel foreach blade

我正在使用Blade模板与Laravel,我尝试使用@foreach循环来显示通知。问题是,如果我说了10个通知,则第一个通知会重复10次。

输出每个通知的代码:

@foreach ( Auth::user()->unreadNotifications as $notification )

    {{ $notification->type->web_template }}
    {{ $notification->id }}
    @include($notification->type->web_template)

@endforeach

web_template将输出模板的路径:notifications.web.user_alert

对于循环的每次迭代,{{ $notification->type->web_template }}{{ $notification->id }}将输出他们应该提供的内容,但@include($notification->type->web_template)每次只输出第一个通知。

所以输出看起来像:


156 notification.web.new_message

您收到了来自Joe的新消息。


154 notification.web.user_alert

您收到了来自Joe的新消息。


145 notification.web.new_like

您收到了来自Joe的新消息。


我认为可能存在某种缓存问题,但我无法找到遇到同样问题的人。

有什么想法吗?

更新:添加一些代码

示例通知视图:

@extends('layouts.notification-wrapper')

@section('url', url('jobs/'.$notification->job_id.'#highlight'.$notification->bid_id))

@section('image', '/assets/img/no-photo.jpg')

@section('header', $notification->collector->firstname . ' ' . $notification->collector->secondname)

@section('description')
has placed a bid of €{{ number_format($notification->bid()->withTrashed()->first()->amount,0) }} on your job.
@stop

通知包装:

<li @if(!$notification->read) 
    class="unread" 
    @endif>
    <a href="@yield('url')" data-id="{{ $notification->id }}">
        <div class="pull-left">
            <img src="@yield('image')" class="img-circle" alt="user image">
        </div>
        <h4>
            @yield('header')
            <small><i class="fa fa-clock-o"></i> {{ $notification->created_at->diffForHumans()}}</small>
        </h4>
        <p> @yield('description')</p>
    </a>
</li>

1 个答案:

答案 0 :(得分:3)

回答我自己的问题!

找到了这个:Laravel Blade Templates Section Repeated / cache error

基本上无论它的工作方式如何,我都需要在循环和使用@yield时覆盖我的部分......我想。因此,我需要在视图中将@stop替换为@overwrite