【发布时间】: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 我添加了更多代码,谢谢
标签: php html laravel image photo