laravel - 每个注册只显示一个列表项
问题描述
我有下面的代码来显示会议中用户的下一次注册:
$nextRegistrations = $user->registrations()
->with('participants.registration_type')
->whereHas(
'conference',
function ($query) {
$query->where('end_date', '>', now());
}
)->paginate($pageLimit);
然后,如果“registration_types”表的“available_certificate”列的值为“Y”,我想在视图中为每个注册显示一个链接“获取证书”。所以我有下面的代码,但是当注册有超过 1 名参与者时会出现问题,例如,如果注册有 2 名参与者与之关联,它会出现两个列表项,而不仅仅是一个列表项。你知道怎么解决吗?
<ul class="list-group events-list">
@foreach($nextRegistrations as $nextRegistration)
@foreach($nextRegistration->participants as $participant)
@if(!empty($nextRegistration->conference) || !empty($nextRegistration->conference->start_date))
@if (($participant->registration_type->certificate_available == 'Y')
<a href="{{route('conferences.certificateInfo',
[
'regID'=> $nextRegistration->id])}}"
class="btn btn-primary ml-2">Download certificate</a>
@endif
</li>
@endif
@endforeach
@endforeach
</ul>
解决方案
好吧,它为每个有效参与者显示了一个列表项,因为这就是您要求它执行的操作。您有一个foreach
循环,表示当参与者有效时,它应该显示一个列表项。如果您想在每次注册时显示一个列表项,则需要更改您的代码。我建议将列表项代码添加到第一个foreach
循环并检查每个参与者,一旦找到有效参与者,就可以退出foreach
循环。看我的例子:
<ul class="list-group events-list">
@foreach($nextRegistrations as $nextRegistration)
@php
$validRegistration = false;
@endphp
@foreach($nextRegistration->participants as $participant)
@if(!empty($nextRegistration->conference) || !empty($nextRegistration->conference->start_date))
@if (($participant->registration_type->certificate_available == 'Y')
@php
$validRegistration = true;
@endphp
@break
@endif
@endif
@endforeach
@if($validRegistration)
<li><a href="{{ route('conferences.certificateInfo', ['regID' => $nextRegistration->id]) }}" class="btn btn-primary ml-2">Download certificate</a></li>
@endif
@endforeach
</ul>
推荐阅读
- apache-spark - 从 spark 授予所有 uri
- php - 无限 wp_mail 循环
- javascript - 选择元素不会触发表单事件(只有 JavaScript,没有 jQuery!)
- android - AudioRecord::processAudioBuffer() 音频缓冲区来自哪里?
- puppeteer - 如何将 Google Docs Viewer 与 puppeteer 一起使用?
- swift - 尝试编写用于将 JSON 解析为可编码结构的通用函数
- angular - 角度弹出窗口不适用于 TS 文件,但适用于 HTML
- javascript - 日期选择器组件中的同步属性
- android - Room - 检查最近是否获取了数据
- css - web2py默认表单样式不起作用