为什么在拉拉维尔中不起作用删除按钮?



我的 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>

实际上是通过gethttp 动词而不是DELETE,因为您为delete制作路由,因此您需要为get而不是像delete

Route::get('projects/{projects}/tasks/{tasks}/delete', [
'uses' => 'AppHttpControllersTasksController@deleteOneProjectTask',
]);

或者你必须调用 http 动词delete,要么通过表单标签中的method='DELETE',要么通过ajax,你可以让它成为 http 动词作为DELETE

要制作DELETEhttp 动词,请使用带有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

相关内容

  • 没有找到相关文章

最新更新