Laravel 7:将数据库结果分成 3 行结果,并将每个结果放入 bootstrap4 行
Posted
技术标签:
【中文标题】Laravel 7:将数据库结果分成 3 行结果,并将每个结果放入 bootstrap4 行【英文标题】:Laravel 7: Divide database results into 3-row results and put each into bootstrap4 row 【发布时间】:2020-12-26 03:00:44 【问题描述】:您好,我想知道在从数据库中提取数据时是否可以使用引导行。我做了一个布局(3 列),我想在行中显示数据库结果。我想在每个页面上有 3 行,每行 3 个项目,这就是我在 PostController.php 文件中创建的:
public function index(Post $post)
$posts = Post::orderBy('id', 'DESC')->paginate(9);
return view('admin.posts.viewposts', [
'posts' => $posts
]);
而且效果很好。但问题是,它在一行中显示帖子(每行一个)。我想使用 bootstrap4 进行 3x3 后期布局。可能吗?提前致谢。
【问题讨论】:
【参考方案1】:根据文档,您可以使用 Collection 的 chunk 方法。
chunk()
chunk 方法将集合分成多个给定大小的较小集合:
$collection = collect([1, 2, 3, 4, 5, 6, 7]); $chunks = $collection->chunk(4); $chunks->toArray(); // [[1, 2, 3, 4], [5, 6, 7]]
当使用Bootstrap 等网格系统时,此方法在views 中特别有用。假设您有一组 Eloquent 模型要在网格中显示:
@foreach ($products->chunk(3) as $chunk) <div class="row"> @foreach ($chunk as $product) <div class="col-xs-4"> $product->name </div> @endforeach </div> @endforeach
您可以执行以下操作:
控制器
public function index(Post $post)
$posts = Post::orderBy('id', 'DESC')->get();
return view('admin.posts.viewposts', [
'posts' => $posts
]);
查看
<!-- Posts Layout -->
<div class="container">
@foreach ($posts->chunk(3) as $chunk)
<!-- Layout for 3 posts -->
<div class="row">
@foreach ($chunk as $post)
<!-- Layout for a single post -->
<div class="col">
<h3> $post->... </h3>
<h3> $post->... </h3>
<h3> $post->... </h3>
</div>
<!-- End Layout for a single post -->
@endforeach
</div>
<!-- End Layout for 3 posts -->
@endforeach
</div>
<!-- End Posts Layout -->
【讨论】:
非常感谢!以上是关于Laravel 7:将数据库结果分成 3 行结果,并将每个结果放入 bootstrap4 行的主要内容,如果未能解决你的问题,请参考以下文章