Laravel从数据库取数据生成表格时无法按帖子创建多行问题
解决Laravel表格中所有帖子挤在同一行的问题
嘿,这个问题我之前也踩过坑!看起来你是把帖子的循环逻辑放错位置了——你应该让每一篇帖子对应一个独立的表格行(<tr>),但现在的代码大概率是把所有帖子的内容都塞进了同一个<tr>里,所以才会出现所有数据挤在一行的情况。
错误结构(你可能现在的写法)
比如你可能写成了这样:
<div class="container"> <section class="row posts"> <table class="post"> <tr> <th>Title</th> <th>Content</th> <!-- 其他表头 --> @foreach($posts as $post) <td>{{ $post->title }}</td> <td>{{ $post->content }}</td> @endforeach </tr> </table> </section> </div>
这种写法会把所有帖子的<td>都放在同一个<tr>里,自然就只有一行数据。
正确的写法
你需要把<tr>整个放进@foreach循环里,让每遍历一篇帖子就生成一个新的表格行:
<div class="container"> <section class="row posts"> <table class="post"> <!-- 表头行 --> <tr> <th>Title</th> <th>Content</th> <!-- 按需添加其他表头列 --> </tr> <!-- 每篇帖子对应一个新行 --> @foreach($posts as $post) <tr> <td>{{ $post->title }}</td> <td>{{ $post->content }}</td> <!-- 对应其他数据列 --> </tr> @endforeach </table> </section> </div>
额外检查点
- 确认你的
$posts变量确实包含了7条数据:可以在控制器里用dd($posts)打印出来看看,确保数据是正确的。 - 检查Blade语法是否正确:
@foreach和@endforeach必须成对出现,不能遗漏闭合标签。 - 确保没有额外的HTML标签嵌套错误:比如不小心把
<tr>放在了<td>里面,这也会导致布局混乱。
按照这个结构修改后,每篇帖子就会单独占据一行,和你预期的一样啦!
内容的提问来源于stack exchange,提问作者KB_Shayan
相关产品推荐
相关产品推荐

