首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找正确的Laravel路径|从数据库获取照片

寻找正确的Laravel路径|从数据库获取照片
EN

Stack Overflow用户
提问于 2020-05-14 03:02:44
回答 2查看 33关注 0票数 1

也许有人可以帮助我解决这个Laravel问题-我正在做一个非常非常简单的项目,我想从数据库中获取一些照片,并将它们以简单的flexbox布局发布。目前,代码如下:

web.php

代码语言:javascript
复制
Route::get('/', function () {
    $venice_photos = \App\VenicePhoto::orderBy('id', 'ASC')
    ->take(6)
    ->get();

    return view('pages.venice', [
        'venice_photos' => $venice_photos,
    ]);
});

刀片文件:

代码语言:javascript
复制
<div class="row">
    @foreach ($venice_photos as $venicePhoto)
        <div class="block block-photo" style="background: url({{$venicePhoto->img}}) no-repeat 50% 50%; background-size: cover;"></div>
    @endforeach
</div>

每个div应该从数据库中张贴6张照片,并且应该至少有4个div。但是照片不应该重复。我用@if ($venicePhoto->id > 6)尝试了下一个div,但没有起作用。所以问题是-我在哪里以及如何声明规则,即每个div中的照片应该具有唯一的id?

EN

回答 2

Stack Overflow用户

发布于 2020-05-14 03:34:49

您可以使用chunk方法拆分照片集合。

chunk方法将集合分解为给定大小的多个较小的集合:

代码语言:javascript
复制
$collection = collect([$photo1, $photo12, $photo13, $photo14, $photo15, $photo16, $photo17]);

$chunks = $collection->chunk(4);

$chunks->toArray();

// [[$photo11, $photo12, $photo13, $photo14], [$photo15, $photo16, $photo17]]

然后你必须创建两个foreach,这样至少有4个带有照片的div,以及和照片一样多的div组。

独特的照片

如果希望照片不重复,则必须验证它们是否都是不同的

unique方法返回集合中的所有唯一项。返回的集合保留了原始的数组键,因此在本例中,我们将使用values方法将键重置为连续编号的索引:

代码语言:javascript
复制
$collection = collect([1, 1, 2, 2, 3, 4, 2]);

$unique = $collection->unique();

$unique->values()->all();

// [1, 2, 3, 4]
票数 0
EN

Stack Overflow用户

发布于 2020-05-15 02:24:02

最后我用“skip”解决了这个问题:

代码语言:javascript
复制
$venice_photos_2 = \App\VenicePhoto::orderBy('id', 'ASC')
->skip(6)
->take(6)
->get();

因此,在每个部分中,我跳过了前面的照片,并从数据库中发布了接下来的6张照片。但是,如果数据/照片的数量更大,这将不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61782820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档