Laravel 5.4 "MethodNotAllowedHttpException"(基本任务列表)

Laravel 5.4 "MethodNotAllowedHttpException" (Basic Task List)

我试图按照 Laravel 上的 this 教程进行操作,尽管那里的大部分代码和目录都已过时,但我设法将 "Add Task" 和表单制作成出现一些错误后出现。

现在是问题所在,删除按钮。 当我点击它时,它显示 "MethodNotAllowedHttpException"。 我更改了源代码以匹配 Laravel.

的最新版本

我的表格(当前版本):

<form action="{{ url('/task/'.$task->id) }}" method="POST">
   {{ method_field('DELETE') }}
   {{ csrf_field() }}
   <button type="submit" class="btn btn-danger">
     <i class="fa fa-btn fa-trash"></i>Delete
   </button>
</form>

我的路线:

Route::delete('/task/{id}', function ($id) {
    Task::findOrFail($id)->delete();
    return redirect('/');
});

我已经尝试修复这个问题 4 个小时了,改变了我的路线和形式的方法;但无济于事。 这是我在这个网站上的第一个问题,如果这个问题有什么不对的地方,我们深表歉意。

谢谢~

编辑: 为了进一步帮助这项工作,这里是完整的错误日志 Error log, in Google Chrome

改变

<form action="{{ url('task/'.$task->id) }}" method="DELETE">

<form action="{{ url('task/'.$task->id) }}" method="POST">

因为表单方法 DELETE 不存在,Laravel 只是 "overwrites" 这个方法和隐藏的输入 "method" (你可以使用“{{ method_field('DELETE') }}”放置这个输入) .

Form 不支持方法 Delete 或 Put ...它只支持 get 和 post 方法,如果你想在 laravel 中实现 delete 这篇文章将帮助你 link

回答: 原来问题出在 Database-table 本身,让我解释一下: 我指的是 'tasks' table 在代码中被称为 'task' (没问题) 但是,我在我的 table 中将一个名为 "ID" 的列称为我的代码中的 "id",从而产生了错误(菜鸟错误)。

感谢@Autista_z 的指点,以及下面其他人的指导!