Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 寻找正确的Laravel路线|从数据库获取照片_Html_Laravel - Fatal编程技术网

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

Html 寻找正确的Laravel路线|从数据库获取照片,html,laravel,Html,Laravel,也许有人可以帮我解决这个拉威尔问题——我正在做一个非常简单的投资组合项目,我想从数据库中获取一些照片,并以简单的flexbox布局发布。目前,代码如下: web.php Route::get('/', function () { $venice_photos = \App\VenicePhoto::orderBy('id', 'ASC') ->take(6) ->get(); return view('pages.venice', [

也许有人可以帮我解决这个拉威尔问题——我正在做一个非常简单的投资组合项目,我想从数据库中获取一些照片,并以简单的flexbox布局发布。目前,代码如下:

web.php

Route::get('/', function () {
    $venice_photos = \App\VenicePhoto::orderBy('id', 'ASC')
    ->take(6)
    ->get();

    return view('pages.venice', [
        'venice_photos' => $venice_photos,
    ]);
});
刀片文件:

<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>

@foreach($venice_照片作为$venicePhoto)
@endforeach

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

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

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

$collection = collect([$photo1, $photo12, $photo13, $photo14, $photo15, $photo16, $photo17]);

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

$chunks->toArray();

// [[$photo11, $photo12, $photo13, $photo14], [$photo15, $photo16, $photo17]]
然后,您必须为每个制作两个分区,以便至少有4个分区有照片,并且分区组的数量与照片的数量相同

独特的照片

如果你不想重复这些照片,你必须确认它们都是不同的

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

$collection = collect([1, 1, 2, 2, 3, 4, 2]);

$unique = $collection->unique();

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

// [1, 2, 3, 4]

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

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

$collection = collect([$photo1, $photo12, $photo13, $photo14, $photo15, $photo16, $photo17]);

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

$chunks->toArray();

// [[$photo11, $photo12, $photo13, $photo14], [$photo15, $photo16, $photo17]]
然后,您必须为每个制作两个分区,以便至少有4个分区有照片,并且分区组的数量与照片的数量相同

独特的照片

如果你不想重复这些照片,你必须确认它们都是不同的

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

$collection = collect([1, 1, 2, 2, 3, 4, 2]);

$unique = $collection->unique();

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

// [1, 2, 3, 4]

最后,我用“跳过”解决了这个问题:


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

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


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

谢谢!现在我正在检查这两种方法,但它们似乎远远超出了我的拉威尔知识范围。这条路线看起来像这样吗<代码>路由::get('/',函数(){$collection=collect([7,8,9,10,11,12]);$unique=$collection->unique();$unique->values()->all();$venice\u photos=\App\VenicePhoto::orderBy('id',ASC')->take(6)->get();返回视图('pages venice',['venice\u photos'=>$venice\u photos,])谢谢!现在我正在检查这两种方法,但它们似乎远远超出了我的拉威尔知识范围。这条路线看起来像这样吗<代码>路由::get('/',函数(){$collection=collect([7,8,9,10,11,12]);$unique=$collection->unique();$unique->values()->all();$venice\u photos=\App\VenicePhoto::orderBy('id',ASC')->take(6)->get();返回视图('pages venice',['venice\u photos'=>$venice\u photos,])