我无法在服务表上存储数据,但我仍会在同一页面上重定向
当我尝试 dd($input) 时,我收到输入,但是当我单击提交时,数据无法存储在我的服务数据库表中,并且我会被重定向到同一个 craete 页面上。
这是我在 ServiceController 上的存储方法:
public function store(Request $request)
{
$request->validate([
'tittlea' => 'required',
'descriptiona' => 'required',
'imagea' => 'nullable|image',
'tittleb' => 'required',
'descriptionb' => 'required',
'imageb' => 'nullable|image',
'tittlec' => 'required',
'descriptionc' => 'required',
'imagec' => 'nullable|image',
'tittled' => 'required',
'descriptiond' => 'required',
'imaged' => 'nullable|image',
]);
$input = $request->all();
// Gestion des images
foreach (['imagea', 'imageb', 'imagec', 'imaged'] as $imageField) {
if ($request->hasFile($imageField)) {
$image = $request->file($imageField);
$destinationPath = 'image/';
$imageName = uniqid() . '.' . $image->getClientOriginalName();
$image->move($destinationPath, $imageName);
$input[$imageField] = $imageName;
} else {
unset($input[$imageField]);
}
}
Service::create($input);
return redirect('/admin/services')->with('message', 'Service added successfully');
}`
这是我的 service.create.blade.php :
@extends('layouts.app')
@section('title', 'Data service')
@section('content')
<div class="container">
<a href="/admin/services" class="btn btn-primary mb-3">Services list</a>
<div class="row">
<div class="col-md-12">
<form action="{{ route('services.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<!-- Éléments pour le service A -->
<div class="form-group">
<label for="">Title A</label>
<input type="text" class="form-control" name="tittlea" placeholder="Title A">
</div>
@error('tittlea')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">Description A</label>
<textarea name="descriptiona" id="" cols="30" rows="10" class="form-control" placeholder="Description A"></textarea>
</div>
@error('descriptiona')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">File A</label>
<input type="file" class="form-control" name="imagea">
</div>
@error('imagea')
<small style="color: red">{{ $message }}</small>
@enderror
<!-- Répéter ces éléments pour les services B, C et D -->
<!-- Éléments pour le service B -->
<div class="form-group">
<label for="">Title B</label>
<input type="text" class="form-control" name="tittleb" placeholder="Title B">
</div>
@error('tittleb')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">Description B</label>
<textarea name="descriptionb" id="" cols="30" rows="10" class="form-control" placeholder="Description B"></textarea>
</div>
@error('descriptionb')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">File B</label>
<input type="file" class="form-control" name="imageb">
</div>
@error('imageb')
<small style="color: red">{{ $message }}</small>
@enderror
<!-- Éléments pour le service C -->
<div class="form-group">
<label for="">Title C</label>
<input type="text" class="form-control" name="tittlec" placeholder="Title C">
</div>
@error('tittlec')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">Description C</label>
<textarea name="descriptionc" id="" cols="30" rows="10" class="form-control" placeholder="Description C"></textarea>
</div>
@error('descriptionc')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">File C</label>
<input type="file" class="form-control" name="imagec">
</div>
@error('imagec')
<small style="color: red">{{ $message }}</small>
@enderror
<!-- Éléments pour le service D -->
<div class="form-group">
<label for="">Title D</label>
<input type="text" class="form-control" name="titled" placeholder="Title D">
</div>
@error('titled')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">Description D</label>
<textarea name="descriptiond" id="" cols="30" rows="10" class="form-control" placeholder="Description D"></textarea>
</div>
@error('descriptiond')
<small style="color: red">{{ $message }}</small>
@enderror
<div class="form-group">
<label for="">File D</label>
<input type="file" class="form-control" name="imaged">
</div>
@error('imaged')
<small style="color: red">{{ $message }}</small>
@enderror
<!-- Bouton de soumission -->
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">Submit</button>
</div>
</form>
</div>
</div>
</div>
@endsection
我希望得到一些回应,因为我厌倦了解决这种情况。
如上所述,确保在模型
Service.php
中定义了 protected $fillable = [];
。您需要为每个可以批量填充的字段添加一个项目。添加后,表格应该保存,没有任何问题。
protected $fillable = [
'titlea',
'descriptiona',
'imagea'
...
];