从数据库中检索所有照片

Posted

技术标签:

【中文标题】从数据库中检索所有照片【英文标题】:retrieving all photos from database 【发布时间】:2020-07-09 05:43:41 【问题描述】:

我正在建立一个分类网站,我正在尝试将其设置为在主页上显示来自数据库的一张照片,在类别页面上显示同一张照片,但是当您查看待售商品的完整页面时,我想要显示该部分中的所有照片。

就像 ebay 如何为广告显示一张照片,但当您点击广告时,它会显示多张照片。

我曾使用“strtok”在我的主页和类别页面中显示单张照片,但现在我不知道如何设置查看页面以显示该项目的所有照片。

这是我在发布列表时保存图像的方式。

public function postHobbies(Request $request)
$this->validate($request, [
'photos' => 'required',
'Photos.*' => 'image|mimes:jpg, png, jpeg, gif, aae, heif, svg|max:2048'
]);

$ads = new Listings;
$images = $request->file('photos');
$count = 0;
if($request->file('photos'))
foreach($images as $item)
if($count < 6)
$var = date_create();
$date = date_format($var, 'Ymd');
$imageName = $date.'_'.$item->getClientOriginalName();
$item->move(public_path().'/uploads/',$imageName);
$url = URL::to("/").'/uploads/'.$imageName;
$arr[] = $url;
$count++;


$image = implode(",", $arr);
$ads->photos = $image;
$ads->save();
return redirect('/')->with('info', 'Listing published successfully');


这是我试图在其上发布所有照片的页面的控制器

public function view(Request $request, $id)
$ads = DB::table('listings')
->select ('listings.id', 'photos', 'description', 'year', 'make', 'model', 'price', 'city', 'state', 'email')
->where(['id' => $id])
->get();
$output = '';
if($ads->count() > 0)
return view('users.posted.postedads', ['id'=>$id, 'ads'=>$ads]);



最后,这是我目前传递它的方式,它只是向我展示单张照片,因为我仍在使用“strtok”来确保它有效。所以我假设我需要更改此功能,我只是不知道该使用什么或如何使用它。

<div class="row">
@if(count($ads)>0)
@foreach($ads as $row)

<div class="col-md-12">
<div class="productCard">
<img style=" width:100%;height:100%; " src=<?php echo strtok($row->photos, ',')?> />
</div>
</div>
@endforeach
@else
@endif

【问题讨论】:

没有看到任何与从数据库中提取相关的代码。也许该代码与您的问题相关? 那么你想要一个循环来显示所有图像吗?只需使用 foreach($row as $rows) foreach ($row as $rows) 只是一遍又一遍地给了我第一张图片。如果我只是在这样的标题中打印数据

$$row->photos

它会显示数据库中的所有 4 张图像。
@GetSet 我添加了更多代码,谢谢 【参考方案1】:

没有代码很难回答,但在您的控制器中,将它们全部放在一个数组中并将其传递给您的视图。

return view('...', compact('photo_urls');

然后在你的blade.php中你可以像这样简单地循环数组。

@foreach ($photo_urls as $key => $url)
 $url
@endforeach

【讨论】:

如果您查看更新后的帖子,我想我确实将它们放在另一个控制器中的数组中,也许您可​​以为我提供更多帮助。谢谢 检查阵列中内容的一种非常简单的方法是在刀片文件中执行此&lt;?php dd($photo_urls) ?&gt;。这将为您提供所有值,以便您检查所有内容是否按正确顺序排列。如果要将数组传递给视图,则应在控制器中使用 compact() 函数。【参考方案2】:

正如其他人所说。没有代码很难回答。

但是从你的strtok 函数来看,我认为你有一个包含所有图片链接的字段。

您可以使用此代码来解决此问题。

$tok = strtok($row->photos, ',');

while ($tok !== false) 
    $output.= '<div class="col-md-3"><div style="text-align: center;">
            <img src=' . $tok . ' style="padding:10px !important;width:50%; height:50%;"/>
            </div></div>';
    $tok = strtok($row->photos, ',');

我不知道你为什么不使用explode 函数。到时候就超级简单了。

【讨论】:

我认为explode功能是我想要使用的我只是不知道该怎么做?我已经更新了我的帖子,提供了更多信息,您可能可以帮助我。谢谢

以上是关于从数据库中检索所有照片的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式从照片应用程序中检索所有照片/视频并将其复制到我的应用程序?

使用swift在iOS上本地保存和检索包含所有元数据的照片

如何检索照片库路径?

在 iOS 中访问 Photos.sqlite 以检索照片元数据

如何从 HttpClient 检索照片?

按位置从 iOS 照片库中获取照片