在 Laravel 5.4 的路由中使用 DELETE 方法

新手上路,请多包涵

我正在做一个 Laravel (v 5.4) 项目,我做了 CRUD 来管理类别。目前,我可以创建一个新类别并且可以删除。

我创建了视图(带有刀片)以删除类别:

 <table class="table">
  <thead>
    <th>Name</th>
    <th>Action</th>
  </thead>
  <tbody>
    @foreach ($categories as $category)
      <tr>
        <td>$category->name</td>
        <td>
          <a href="{{ url('/categories', ['id' => $category->id]) }}">
            <button class="btn btn-default">
            Delete
            </button>
          </a>
        </td>
      </tr>
    @endforeach
  </tbody>
</table>

在路由文件 web.php 中,我写道:

 Route::delete('/categories/{id}', CategoryController@destroy);

我有一个控制器 CategoryController 和一个方法 destroy() 删除类别并重定向到类别列表。但是当我点击删除按钮时,我得到一个错误,说明这条路线没有定义。如果我将 Route::delete 替换为 Route::get 它可以工作。我认为 url 是用 GET 调用的,但我会保留它以进行其他操作。

我试图用表单和“DELETE”替换链接作为“方法”属性的值,但它没有用。

如何使用 DELETE 方法调用 url 以使用 Route::delete 捕获它?

提前致谢。

原文由 Needlle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 550
1 个回答

对于 laravel 5.7,请看我的例子:

 <form action="{{route('statuses.destroy',[$order_status->id_order_status])}}" method="POST">
 @method('DELETE')
 @csrf
 <button type="submit">Delete</button>
</form>

原文由 devugur 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题