I have a database where images are stored in the table row like this:
JavaScript
x
name(string) "name"
sometext(string) "some description"
filesnames(string) image1.jpeg|image2.jpeg
image1 and image2 are stored in the “public/storage/image” folder
JavaScript
public function store(Request $request)
{
$data = request()->validate([
'name' => 'required',
'sometext' => '',
'testImages' => '',
'testImages' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$images = array();
if($files = $request->file('testImages')){
foreach($files as $file){
$name = $file->getClientOriginalName();
$file->move('image', $name);
$images[] = $name;
}
}
auth()->user()->tests()->create([
'name' => $data['name'],
'sometext' => $data['sometext'],
'filenames' => implode("|", $images),
]);
}
public function show ($id)
{
$tests = Tests::findorfail($id); //get row data from table with ID
return view('test.show-report', compact('tests')); //return data to blade
}
In blade I am able to do a $tests->name
and $tests->description
to get data successfully.
I am unable to figure out how to display images from “filenames” blade.
Advertisement
Answer
You can do like so:
JavaScript
@foreach(explode('|',$tests->filenames) as $fileName)
<img src="/storage/image/{{$fileName}}"/>
@endforeach