我的 laravel 应用程序中有任务删除按钮,
这是"我的刀片文件删除"按钮
<a href="/projects/{{ $project->id }}/tasks/{{ $task->id }}/delete" class="editInline"><i class="glyphicon glyphicon-trash"></i></a>
这是任务控制器删除功能
public function deleteOneProjectTask($projectId, $taskId)
{
DB::table('tasks')
->where('project_id', $projectId)
->where('id', $taskId)
->delete();
return redirect()->route('projects.show')->with('info', 'Task deleted successfully');
}
这是路线
Route::delete('projects/{projects}/tasks/{tasks}/delete', [
'uses' => 'AppHttpControllersTasksController@deleteOneProjectTask',
]);
但是当我去删除以下错误时,
MethodNotAllowedHttpException in RouteCollection.php line 218:
如何解决这个问题?
通过锚点调用网址,例如
<a href="/projects/{{ $project->id }}/tasks/{{ $task->id }}/delete" class="editInline"><i class="glyphicon glyphicon-trash"></i></a>
实际上是通过get
http 动词而不是DELETE
,因为您为delete
制作路由,因此您需要为get
而不是像delete
Route::get('projects/{projects}/tasks/{tasks}/delete', [
'uses' => 'AppHttpControllersTasksController@deleteOneProjectTask',
]);
或者你必须调用 http 动词delete
,要么通过表单标签中的method='DELETE'
,要么通过ajax
,你可以让它成为 http 动词作为DELETE
要制作DELETE
http 动词,请使用带有submit
类型按钮的form
,阅读更多。
<form action="/projects/{{ $project->id }}/tasks/{{ $task->id }}/delete" method="DELETE">
<button type="submit"><i class="glyphicon glyphicon-trash"></i></button>
</form>
也看看这个答案来调用 http 动词DELETE
由 ajax。要调用 ajax,请使用onclick
事件在 url 中传递相关的 id