Oct 9, 2022
4
Level 1
How to upload and display multiple image in laravel?
Hello! I have a huge problem that I have been dealing with for 2 weeks now. I managed to upload a single image and display it however, I got stuck in multiple images. I have tried everything but it didn't work at all. I would be very grateful if I could solve this problem. Thanks in advance
Models:
class Listing extends Model{
use HasFactory;
protected $fillable = ['title','description','tags','import','logo','imgaddons'];
}
Controller:
public function store(Request $request){
$formFields = $request->validate([
'title' => 'required',
'tags' => 'required',
'description' =>'required',
'import'=>'required',
'imgaddons'=>'required',
]);
//Multiple imgages
if($request->hasfile('imgaddons')) {
foreach($request->file('imgaddons') as $file)
{
$name = $file->getClientOriginalName();
$file->store('imgaddons','public',$name);
$imgData[] = $name;
$formFields['imgaddons'] = implode(',',$imgData);
$formFields['imgaddons']->save();
}
//Single img(works)
if($request->hasFile('logo'))
{
$formFields['logo'] = $request->file('logo')->store('logo','public');
}
Listing::create($formFields);
return redirect('/');
}
}
html (input):
<div id="addnos-label">
<input class="form-control" type="file" id="images" name="imgaddons[]" multiple>
</div>
html(display for multiple images):
@foreach ($listing->imgaddons as $item)
<img id="heal-elvui" class="img-fluid" src="{{$item ? asset('storage/' . $item) : asset('/images/zoli.jpg')}}"
align="right">
@endforeach
Database:
public function up(){
Schema::create('listings', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('tags');
$table->string('description');
$table->text('import');
$table->string('logo')->nullable();
$table->text('imgaddons')->nullable();
$table->timestamps();
});
}
Please or to participate in this conversation.