Я делаю операцию CRUD в laravel 5.4. Я удаляю изображение из базы данных и хранилища. Я сделал это, но он удаляет имя изображения только из базы данных. И не удаляйте из папки хранения.
И я делаю еще одну вещь: если я нажму на кнопку удаления, то должно появиться одно окно подтверждения. Если нажать «да», то удалить, а не удалить. Но это также не работает.
Мой web.php:
Route::resource('todo','todocontroller');
Мой todocontroller.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\todo;
class todocontroller extends Controller
{
public function index()
{
$todos = todo::paginate('3');
return view('todo.home',compact('todos'));
}
public function destroy($id)
{
$todos = todo::find($id);
if(\File::exists(public_path('public/storage/images/'.$todos->image))){
\File::delete(public_path('public/storage/images/'.$todos->image));
}
$todos->delete();
session()->flash('message','Deleted Successful');
return redirect('todo');
}
}
Мой home.blade.php:
@extends('layout.app')
@section('body')
<br>
@if(session()->has('message'))
{{session()->get('message')}}
@endif
<div class="col-lg-4 col-lg-offset-4"><a href="todo/create" class="btn btn-info">Add new</a>
<h1>Todo Lists</h1>
<ul class="list-group">
@foreach($todos as $todo)
<li class="list-group-item d-flex justify-content-between align-items-center">
<span><img src="{{asset('public/storage/images/'.$todo->image)}}" style="height: 100px;width: 100px;"></span>
<a href="{{'todo/'.$todo->id}}">{{$todo->title}}</a>
{{$todo->body}}
<span>
<form class="delete" action="{{'todo/'.$todo->id}}" method="POST">
{{csrf_field()}}
{{method_field('DELETE')}}
<button type="submit">Delete</button>
</form>
</span>
</li>
@endforeach
{{$todos->links()}}
</ul>
</div>
<script>
$(".delete").on("submit", function(){
return confirm("Do you want to delete this item?");
});
</script>
@endsection