получение всех фотографий из базы данных - PullRequest
0 голосов
/ 28 марта 2020

Я создаю секретный веб-сайт и пытаюсь настроить его на показ одной фотографии из базы данных на главной странице, той же фотографии на странице категории, но при просмотре полной страницы объекта для продажи я хочу показать все фотографии в этом разделе.

Например, как 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

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Как сказали другие. Трудно ответить без кода.

Но из вашей функции 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. Тогда станет очень легко.

0 голосов
/ 28 марта 2020

Трудно ответить без кода, но в вашем контроллере, поместите их все в массив и передайте это на ваше усмотрение.

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

Тогда в вашем блейде. php вы можете просто l oop по массиву, как это.

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