您知道如何只显示一次“下载证书链接”吗?

时间:2018-07-18 17:08:10

标签: laravel

我有一个页面,列出了用户在会议中的所有注册(过去和以后的注册)。如果有与用户注册的注册类型相关的可用证书,我会显示一个链接“下载证书”。所以我在下面有foreach。

问题是,当与一个注册相关联的参与者超过一个时,例如,如果一个注册有2个参与者,并且第一个参与者与一个具有与之相关联的证书的注册类型相关联,则列“ certificate_available” “”表示为“ Y”,并且第二个参与者也与具有与之相关联的证书的注册类型相关联,并且“ certificate_available”列为“ Y”,“下载证书”链接针对相同的注册出现两次,但是该链接应该仅出现一次,然后当用户单击按钮时,pdf应包含有关两个证书的信息。但是链接只能出现一次。

您知道如何只显示一次“下载证书链接”吗?

@foreach($pastRegistrations as $pastRegistration)
    @foreach($pastRegistration->participants as $participant)
        @if ($participant->registration_type->certificate_available == 'Y')
            <a href="{{route('conferences.certificateInfo',
           ['regID'=> $pastRegistration->id])}}"
           class="btn btn-primary ml-2">Download certificate</a>
        @endif
    @endforeach
@endforeach

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

@foreach($pastRegistrations as $pastRegistration)
    @foreach($pastRegistration->participants as $k => $participant)
        <?php 
            $temp = $participant->id;
        ?>
        @if (($participant->registration_type->certificate_available == 'Y' && $temp != $participant->id) || $k == 0)
            <a href="{{route('conferences.certificateInfo',
           ['regID'=> $pastRegistration->id])}}"
           class="btn btn-primary ml-2">Download certificate</a>
        @endif
    @endforeach
@endforeach

您可以使用一个临时变量来存储pastRegistration id,并将其与当前循环的pastRegistration id进行比较,以避免重复。 让我知道您是否发现任何错误。