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 行的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 中按行排序并限制结果

MySQL进阶实战7,查询的执行过程

将获取的结果 NSDate 分成每天使用核心数据的部分

numpy的常用方法3-4

SAS多重比较结果怎么看 为啥有空行,是否1%和5%????两个值

关于 Laravel 5.7 中 Pluck 结果的问题