我正在 Laravel 5.4 中进行 CRUD 操作。我正在从数据库和存储中删除图像。我做到了,但它仅从数据库中删除图像名称。并且不要从存储文件夹中删除。
我正在做另一件事,如果我点击删除按钮,那么应该显示一个确认框。如果单击是,则删除,否则不删除。但它也不起作用。
我的 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
您似乎给出了错误的图像目录路径。这就是删除图像不起作用的原因。
public function destroy($id)
{
$todos = todo::find($id);
if(\File::exists(public_path('storage/images/'.$todos->image))){
\File::delete(public_path('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" onsubmit="return confirm('Do you really want to submit the form?');">
{{csrf_field()}}
{{method_field('DELETE')}}
<button type="submit">Delete</button>
</form>
</span>
</li>
@endforeach
{{$todos->links()}}
</ul>
</div>
@endsection
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句