如何更新和删除Laravel中的多个图像?
我想在Laravel上更新和删除多个图像,更新后将自动从存储中删除旧图像。当我单击删除所有图像和其他数据时,都会删除所有图像
:
public function index(Request $request){
if($request->has('search')){
$data = rekap::where('customer','LIKE','%' .$request->search. '%')->paginate(5);
}else{
$data = rekap::paginate(5);
}
return view('rekap')->with([
'data' => $data,
]);
}
public function tambah_rekap(){
return view ('tambah_rekap');
}
public function insert_rekap(Request $request){
// dd($request->all());
$data = $request->validate([
'customer'=>'required',
'vessel'=>'required',
'scopejob'=>'required',
'pergantian_sparepart'=>'required',
'teknisi'=>'required',
'tahun'=>'required',
'keterangan'=>'required'
]);
$new_data= rekap::create($data);
if($request->has('images')){
foreach($request->file('images')as $image){
$imageName = $data['customer'].'-image-'.time().rand(1,1000).'.'.$image->extension();
$image->move(public_path('data_images'),$imageName);
Image_rekap::create([
'rekap_id'=>$new_data->id,
'image'=>$imageName
]);
}
}
return redirect()->route('rekap')->with('success','Data Berhasil Ditambahkan');
}
public function images($id){
$data = rekap::find($id);
if(!$data) abort(404);
$images = $data->images;
return view ('image_rekap',compact('data','images'));
}
public function show_rekap($id){
$data = rekap::find($id);
return view('show_rekap', compact('data'));
}
public function update_rekap(Request $request,$id){
$data = rekap::find($id);
$data->update($request->all());
return redirect()->route('rekap')->with('success','Data Berhasil di Update');
}
public function delete_rekap($id){
$data = rekap::find($id);
$data->delete();
return redirect()->route('rekap')->with('success','Data berhasil dihapus');
}
这是我的html
<tbody>
@foreach ($data as $row)
<tr>
<td>{{ $row->customer}}</td>
<td>{{ $row->vessel}}</td>
<td>{{ $row->scopejob}}</td>
<td>{{ $row->pergantian_sparepart}}</td>
<td>{{ $row->teknisi}}</td>
<td>{{ $row->tahun}}</td>
<td>{{ $row->keterangan}}</td>
<td>{{ $row->images->count()}}</td>
<td>
<a href={{route('data.images',$row->id)}} type="button" class="btn btn-info">INFO</a>
<a href="/show_rekap/{{ $row->id}}" class="btn btn-warning">EDIT</a>
<a href="#" class="btn btn-danger delete" data-id="{{ $row->id}}" data-customer="{{ $row->customer}}" >DELETE</a>
</td>
</tr>
@endforeach
</tbody>
,这是我的观点:
我可以采取哪些步骤来实现我的Laravel应用程序中的新图像?
I want to update and delete multiple images on laravel, the old images will be automatically deleted from storage after the update. And when I click to delete all images and other data are deleted too
Controller:
public function index(Request $request){
if($request->has('search')){
$data = rekap::where('customer','LIKE','%' .$request->search. '%')->paginate(5);
}else{
$data = rekap::paginate(5);
}
return view('rekap')->with([
'data' => $data,
]);
}
public function tambah_rekap(){
return view ('tambah_rekap');
}
public function insert_rekap(Request $request){
// dd($request->all());
$data = $request->validate([
'customer'=>'required',
'vessel'=>'required',
'scopejob'=>'required',
'pergantian_sparepart'=>'required',
'teknisi'=>'required',
'tahun'=>'required',
'keterangan'=>'required'
]);
$new_data= rekap::create($data);
if($request->has('images')){
foreach($request->file('images')as $image){
$imageName = $data['customer'].'-image-'.time().rand(1,1000).'.'.$image->extension();
$image->move(public_path('data_images'),$imageName);
Image_rekap::create([
'rekap_id'=>$new_data->id,
'image'=>$imageName
]);
}
}
return redirect()->route('rekap')->with('success','Data Berhasil Ditambahkan');
}
public function images($id){
$data = rekap::find($id);
if(!$data) abort(404);
$images = $data->images;
return view ('image_rekap',compact('data','images'));
}
public function show_rekap($id){
$data = rekap::find($id);
return view('show_rekap', compact('data'));
}
public function update_rekap(Request $request,$id){
$data = rekap::find($id);
$data->update($request->all());
return redirect()->route('rekap')->with('success','Data Berhasil di Update');
}
public function delete_rekap($id){
$data = rekap::find($id);
$data->delete();
return redirect()->route('rekap')->with('success','Data berhasil dihapus');
}
and this is my HTML
<tbody>
@foreach ($data as $row)
<tr>
<td>{{ $row->customer}}</td>
<td>{{ $row->vessel}}</td>
<td>{{ $row->scopejob}}</td>
<td>{{ $row->pergantian_sparepart}}</td>
<td>{{ $row->teknisi}}</td>
<td>{{ $row->tahun}}</td>
<td>{{ $row->keterangan}}</td>
<td>{{ $row->images->count()}}</td>
<td>
<a href={{route('data.images',$row->id)}} type="button" class="btn btn-info">INFO</a>
<a href="/show_rekap/{{ $row->id}}" class="btn btn-warning">EDIT</a>
<a href="#" class="btn btn-danger delete" data-id="{{ $row->id}}" data-customer="{{ $row->customer}}" >DELETE</a>
</td>
</tr>
@endforeach
</tbody>
And this is my view:
What steps can I take to achieve updating new images in my laravel application?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论