laravel - 用户的 Laravel 帖子在一列中,按行分隔,用户名在同一列的第一行
问题描述
我有两张桌子
用户
- ID
- 姓名
帖子
- ID
- 姓名
- 用户身份
所有帖子都应该在这些帖子的所有者用户的同一列中,但是 laravel 中的 foreach 只打印成行并且不能以这种方式思考任何方式。
代码是:
<?php
$search = \App\Post::all()->groupBy('user_id');
$total_users = \App\User::count();
$total_posts = 0;
?>
<table>
<tbody>
@foreach($search as $user_id => $posts)
@if ($loop->first)
<tr>
@endif
<td>
{{ $posts[0]->user->name }}
<?php $total_posts += $posts->count(); ?>
</td>
@if ($loop->last)
</tr>
@endif
@endforeach
@for($c = 0; $c < floor($total_posts/$total_users); $c++)
<?php
$users_done = 0;
$tr_done = false;
?>
@foreach($search as $user_id => $posts)
@if(isset($posts[$c]))
@if ($loop->first)
<tr>
@endif
<td>{{ $posts[$c]->name }}</td>
<?php
$users_done++;
$g++;
?>
@if ($loop->last)
<?php
$tr_done = true;
?>
</tr>
@endif
@endif
@endforeach
@if(!$tr_done)
</tr>
@endif
@if($user_done>0 && $users_done<$total_users)
@for($c = 0; $c < $total_users-$users_done; $c++)
<tr><td></td></tr>
@endfor
@endif
@endfor
</tbody>
</table>
我有 2k 个帖子行,我不能以这种方式打印!
任何帮助请!!!!
解决方案
您可以尝试像这样创建表吗?
$table = [];
$users = 0;
$posts = 0;
foreach($users as $user){
foreach($user->posts){
$table[$posts][$users] = $post->name;
$posts++;
}
$users++;
}
推荐阅读
- spring-boot - 从命令行添加弹簧配置文件
- scheme - 返回由第二个列表中的对应值定义的第一个列表的每个元素的方案函数
- performance - Java 11——对 Java 8 的性能回归?
- java - Spring requestMatchers、antMatchers 和 authorizeRequests 使用
- python - 来自抽象模型字段的 Django unique_together
- javascript - 全日历调度程序。事件重叠,resize时,事件是移动顺序
- api - GANDI 的 Lexicion DNS 提供商身份验证失败
- vbscript - iCACLS 与 VBS 中的用户名变量
- javascript - Firebase 函数将错误的密钥写入 Firebase 数据库
- wcf - 使用简单的 HttpClient 类使用 WCF 服务