如何在Blade中对Eloquent get()返回的数组按索引拆分展示至不同表格
Blade实现方案
实现逻辑
你不需要通过遍历判断索引来处理,直接拆分数组即可:
- 直接取下标为0的项单独渲染学生信息表格
- 用
array_slice(数组场景)或slice()(Laravel集合场景)截取从下标1开始的所有内容,遍历渲染科目成绩表格
完整代码示例
{{-- 第一个表格:展示索引0对应的学生基础信息 --}} <div class="s-table-container"> <table class="s-table"> <thead> <tr> <th style="text-align: left;">学生信息项</th> <th style="text-align: right;">内容</th> </tr> </thead> <tbody> @isset($studentData[0]) @php $info = $studentData[0]; @endphp <tr> <td style="text-align: left;">姓名</td> <td style="text-align: right;">{{ $info->name }} {{ $info->middlename }} {{ $info->lastname }}</td> </tr> <tr> <td style="text-align: left;">学号</td> <td style="text-align: right;">{{ $info->student_id }}</td> </tr> <tr> <td style="text-align: left;">班级</td> <td style="text-align: right;">{{ $info->grade_name }}</td> </tr> <tr> <td style="text-align: left;">学生总平均分</td> <td style="text-align: right;">{{ $info->student_average }}%</td> </tr> <tr> <td style="text-align: left;">通过科目数</td> <td style="text-align: right;">{{ $info->number_of_passed_subjects }}</td> </tr> @endisset </tbody> </table> </div> {{-- 第二个表格:展示索引1开始的所有科目成绩 --}} <div class="s-table-container"> <table class="s-table"> <thead> <tr> <th style="text-align: left;">Subject Name</th> <th style="text-align: right;">Subject Average</th> </tr> </thead> <tbody> @foreach(array_slice($studentData, 1) as $subject) <tr> <td style="text-align: left;">{{ $subject->subject_name }}</td> <td style="text-align: right;">{{ $subject->student_average }}%</td> </tr> @endforeach </tbody> </table> </div>
说明
- 如果你的
$studentData是Laravel集合类型,把array_slice($studentData, 1)替换为$studentData->slice(1)即可 - 代码中加了
@isset判断,避免数组为空时出现报错 - 学生信息表格的字段可以根据你的实际需求调整增删
内容的提问来源于stack exchange,提问作者Lwati
相关产品推荐
相关产品推荐

