从数据库中检索所有照片
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
【讨论】:
如果您查看更新后的帖子,我想我确实将它们放在另一个控制器中的数组中,也许您可以为我提供更多帮助。谢谢 检查阵列中内容的一种非常简单的方法是在刀片文件中执行此<?php dd($photo_urls) ?>
。这将为您提供所有值,以便您检查所有内容是否按正确顺序排列。如果要将数组传递给视图,则应在控制器中使用 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功能是我想要使用的我只是不知道该怎么做?我已经更新了我的帖子,提供了更多信息,您可能可以帮助我。谢谢以上是关于从数据库中检索所有照片的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式从照片应用程序中检索所有照片/视频并将其复制到我的应用程序?