laravel - Delete方法在laravel 8中不工作



你好,我仍然是laravel的初学者,我在删除方法上遇到了一个问题。

this my controller

public function destroy($id)
{
$home = Home::find($id);
$home -> delete();
return back();
}

this my balde

<div class="col-6 sampah">
<form action="{{ route('home.destroy', $home->id) }}" method="POST">
@csrf
@method('DELETE')
<a href="">
<i class="bi bi-trash3-fill" style="width: 10px; height:10px;"></i>
</a>
</form>
</div>

this my route

Route::resource('home', 'AppHttpControllersTodosController')->middleware('auth');

当我按下删除键时,为什么不工作?问题在哪里?请帮助。

首先,您需要得到您想要删除的内容,这是一个示例它将是你的控制器:

///用MODEL替换Crud////

public function destroy(Request $request,$id){
$data = Crud::findOrFail($id);
$data->delete();
return redirect('YOUR_HOME_PAGE')->with('success', 'User is successfully deleted');
}

这是你的刀片:

<td>

<form action="{{ route('home.destroy', $row->id) }}" method="post">

@csrf
@method('DELETE')
<button type="submit"  class="btn btn-xs btn-danger btn-flat show_confirm" data-toggle="tooltip" title='Delete'>Delete</button>
</form>
</td>
</tr>


你需要简化事情。

与其在html中创建表单,为什么不使用单个锚按钮来实现相同的效果呢?

<a class="#" data-method="delete" data-confirm="Are you sure?" href="{{ route('home.destroy', $row->id)}}">Delete</a>

href link很重要。Data-method实际上是路由的类型你应该使用route type作为delete。

最新更新