Laravel Blade视图表格连续序号显示异常问题求助
解决Laravel Blade表格连续序号显示异常的问题
你的问题出在{{ $sl = 1; }}这行代码:Blade的双大括号会输出表达式的结果,而赋值语句$sl=1的返回值就是1,所以这个1会直接显示在<tbody>标签内、表格行之外的位置,也就是你看到的表格左上方。
推荐方案:使用Blade内置的循环变量
Blade在@foreach循环中提供了$loop对象,其中$loop->iteration会自动返回当前循环的序号(从1开始递增),无需手动维护序号变量,代码更简洁:
<tbody> @foreach ($data as $item) <tr> <td>{{ $loop->iteration }}</td> <td>{{ $item->category_name }}</td> <td> <a id="edit" class="btn btn-primary" href="">Edit</a> <a onclick="return confirm('Are you sure to delete this category?')" href="{{ url('delete_category', $item->id) }}" class="btn btn-danger">Delete</a> </td> </tr> @endforeach </tbody>
修复原有代码的方案
如果你坚持使用手动维护序号的方式,需要做两处修改:
- 使用
@php标签包裹变量初始化,避免输出赋值结果; - 循环变量不要使用
$data(会覆盖原有的数据集变量),改为其他名称如$item:
<tbody> @php $sl = 1; @endphp @foreach ($data as $item) <tr> <td>{{ $sl }}</td> <td>{{ $item->category_name }}</td> <td> <a id="edit" class="btn btn-primary" href="">Edit</a> <a onclick="return confirm('Are you sure to delete this category?')" href="{{ url('delete_category', $item->id) }}" class="btn btn-danger">Delete</a> </td> </tr> @php $sl++; @endphp @endforeach </tbody>
内容的提问来源于stack exchange,提问作者Sourav Mandal
相关产品推荐
相关产品推荐

