strncmp() expects parameter 1 to be string array given I have a multiple image. When I upload multiple image. I get this error.
strncmp() expects parameter 1 to be string array given
my blade
<form action="{{ route('design-studios.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" id="title" name="title" value="{{ old('title') }}">
</div>
//......
<div class="form-group">
<fieldset class="border p-3">
<legend>Slideshow</legend>
<div class="form-group">
<label for="sliders">Image</label>
<input id="sliders" name="sliders[]" type="file" multiple class="form-control">
</div>
</fieldset>
</div>
</form>
My Controller.
public function store(Request $request)
{
$design_studio = new DesignStudio;
$design_studio->user_id = 1;
$design_studio->title = $request->title;
$design_studio->lang = $request->lang;
$design_studio->body = $request->body;
if($request->has('image')) {
$image = $request->file('image');
$filename = $image->getClientOriginalName();
$image->move(public_path('images/design-studio'), $filename);
$design_studio->image = $request->file('image')->getClientOriginalName();
}
if ($sliders = $request->file('sliders')) {
foreach ($sliders as $slider) {
$filename = $slider->getClientOriginalName();
$slider->move(public_path('images/design-studio'), $filename);
$design_studio->sliders = $slider->getClientOriginalName();
}
}
$design_studio->save();
$design_studio->categories()->attach($request->category);
return redirect()->route('design-studios.index');
}
My Model
protected $casts = [
'sliders' => array()
];
I get this error.
strncmp() expects parameter 1 to be string array given
I changed the codes
if ($sliders = $request->file('sliders')) {
foreach ($sliders as $slider) {
$filename = $slider->getClientOriginalName();
$slider->move(public_path('images/design-studio'), $filename);
$design_studio->sliders = $request->file('sliders')->getClientOriginalName();
}
}
But I get this error
Call to a member function getClientOriginalName() on array
if ($sliders = $request->file('sliders')) {
foreach ($sliders as $slider) {
$filename = $slider->getClientOriginalName();
$slider->move(public_path('images/design-studio'), $filename);
// what are you trying to do with this line;
$design_studio->sliders = $request->file('sliders')->getClientOriginalName();
// inside the loop you are working with $slider
// how are you trying to store each of the multiple images in the database?
}
}
I write this after foreach and I uploaded 7 images.
foreach ($sliders as $slider) {
dd($slider);
dd
Answer my question.
How to upload multiple files and save in database.
How to upload multiple files and save in database.
What is this error?
Please sign in or create an account to participate in this conversation.