您的位置:首页 >Laravel Blade 嵌套用户数组遍历与表格渲染技巧
发布于2026-04-10 阅读(0)
扫一扫,手机访问

本文详解 Laravel Blade 中因错误嵌套循环导致的“Trying to access array offset on the value of type int”错误,提供安全、简洁的 @foreach 替代方案,并附带结构化示例与关键注意事项。
本文详解 Laravel Blade 中因错误嵌套循环导致的“Trying to access array offset on the value of type int”错误,提供安全、简洁的 `@foreach` 替代方案,并附带结构化示例与关键注意事项。
在 Laravel Blade 模板中渲染动态表格时,常见误区是混合使用 @for 和 @foreach 对多维数组进行非对称遍历——正如问题中所示:先用 $i 索引访问 $listusers[$i],再对其执行 @foreach。该写法隐含一个关键假设:$listusers[$i] 必须是一个可遍历的数组或集合;但若实际数据结构为一维索引数组(例如 [[1, 'Alice', 'admin'], [2, 'Bob', 'user']]),或更常见地——$listusers 本身已是用户对象/数组的扁平列表(如 ['id' => 1, 'name' => 'Alice']),那么 $listusers[$i] 就是单个用户项(如关联数组),此时再对它执行 @foreach($listusers[$i] as $key => $listuser) 会导致 $listuser 变成该用户的某个字段值(例如整数 1 或字符串 'Alice'),后续尝试 $listuser['id'] 自然抛出 “Trying to access array offset on the value of type int” 错误。
✅ 正确做法是直接遍历顶层用户集合,避免冗余索引:
<tbody>
@foreach($listusers as $listuser)
<tr>
<th scope="row">{{ $listuser['id'] ?? 'N/A' }}</th>
<td>{{ $listuser['name'] ?? 'Unknown' }}</td>
<td>{{ $listuser['email'] ?? '-' }}</td>
<td>{{ $listuser['role'] ?? 'guest' }}</td>
<td>{{ $listuser['created_at'] ? \Carbon\Carbon::parse($listuser['created_at'])->format('Y-m-d') : '-' }}</td>
<td>
<ul class="list-inline mb-0">
<li><a href="{{ route('admin.users.destroy', $listuser['id']) }}"
class="text-danger" title="Delete" onclick="return confirm('确认删除?')">
<i class="bi bi-trash"></i>
</a></li>
<li><a href="{{ route('admin.users.edit', $listuser['id']) }}"
class="text-primary" title="Edit">
<i class="bi bi-pencil-square"></i>
</a></li>
</ul>
</td>
</tr>
@endforeach
</tbody>? 关键说明与最佳实践:
综上,摒弃基于索引的手动循环,拥抱语义明确、健壮安全的 @foreach,是 Laravel Blade 渲染列表数据的黄金准则。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9