and i use package
composer require intervention/image
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
form send
<form action="{{ route('housebuild.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<input type="text" name="title">
<input type="text" name="wall">
<input type="text" name="sailing">
<input type="file" name="images[]" id="inputImage" multiple
class="form-control @error('images') is-invalid @enderror">
@error('images')
<span class="text-danger">{{ $message }}</span>
@enderror
<input type="text" name="adres" >
<textarea name="desc"></textarea>
<x-BtnSend/>
</form>
controller
public function store(Request $request)
{
dd($request);
$request->validate([
'title'=> 'required',
'desc'=> 'required',
'wall'=> 'required',
'sailing'=> 'required',
'adres'=> 'required',
]);
$input = $request->all();
$images = [];
if ($request->images){
foreach($request->images as $key => $image)
{
$destinationPath = 'image/house/build/';
$profileImage = time().rand(1,99).'.'.$image->extension();
$resize = \Intervention\Image\ImageManagerStatic::make($image);
$resize->resize(500, 300);
$resize->save($destinationPath . $profileImage);
$images[]['images'] = "$profileImage";
}
}
$input['user_id'] = Auth::id();
$builder = Build::create($input);
foreach ($images as $path) {
$builder->buildimages()->create(['path' => $path] );
}
return redirect()->back()
}
model Build
protected $fillable = [
'user_id',
'title',
'desc',
'wall',
'sailing',
'adres',
];
public function user()
{
return $this->belongsTo(User::class);
}
public function buildimages()
{
return $this->hasMany(Buildimages::class);
}
model Buildimages
protected $fillable = [
'build_id',
'image'
];
public function build()
{
return $this->belongsTo(Build::class);
}
tables
Schema::create('builds', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->string('title');
$table->text('desc');
$table->string('wall');
$table->string('sailing');
$table->string('adres');
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade');
$table->timestamps();
});
}
and
Schema::create('buildimages', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('build_id');
$table->text('image');
$table->foreign('build_id')->references('id')->on('builds')->onDelete('cascade');
$table->timestamps();
});
dd
Illuminate\Http\Request {#46 ▼ // app\Http\Controllers\BuildController.php:54
+attributes: Symfony\Component\HttpFoundation\ParameterBag {#48 ▶}
+request: Symfony\Component\HttpFoundation\InputBag {#47 ▼
#parameters: array:6 [▼
"_token" => "pdOmqRC34TVjoc2l4JFQNCROycOGtVrUfv9wABUW"
"title" => "title"
"wall" => "wall"
"sailing" => "sailng"
"adres" => "address"
"desc" => "<p>describtion describtion describtion describtion describtion describtion describtion describtion</p>"
]
}
+query: Symfony\Component\HttpFoundation\InputBag {#54 ▶}
+server: Symfony\Component\HttpFoundation\ServerBag {#51 ▶}
+files: Symfony\Component\HttpFoundation\FileBag {#50 ▼
#parameters: array:1 [▼
"images" => array:3 [▼
0 => Symfony\Component\HttpFoundation\File\UploadedFile {#34 ▶}
1 => Symfony\Component\HttpFoundation\File\UploadedFile {#35 ▶}
2 => Symfony\Component\HttpFoundation\File\UploadedFile {#36 ▶}
]
]
}
Error is :
SQLSTATE[HY000]: General error: 1364 Field 'image' doesn't have a default value
insert into
`buildimages` (`build_id`, `updated_at`, `created_at`)
values
(2, 2023 -01 -08 10: 44: 31, 2023 -01 -08 10: 44: 31)
A post should sometimes have one, sometimes five, and sometimes several images. The problem is inside the controller. How should I solve it?
@LoverToHelp you didn't change this?
$builder->buildimages()->create(['path' => $path] );
//change to
$builder->buildimages()->create(['image' => $path] );
Please or to participate in this conversation.