我正在一个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::get
替换Route::delete
,它会工作。我想url是用GET调用的,但我会保留它以用于其他操作。
我试图用一个表单替换链接,并将“DELETE”作为“method”属性的值,但没有成功。
如何使用DELETE方法调用url,以使用Route::DELETE
捕获它?
提前谢谢。
除了GET
和POST
之外的任何方法都需要使用隐藏的表单输入指定方法类型。Laravel就是这样检测它们的。在您的情况下,您需要使用表单发送删除操作。这样做。
<table class="table">
<thead>
<th>Name</th>
<th>Action</th>
</thead>
<tbody>
@foreach ($categories as $category)
<tr>
<td>$category->name</td>
<td>
<form action="/categories/{{ $category->id }}" method="post">
{{ method_field('delete') }}
<button class="btn btn-default" type="submit">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
laravel 5.7请看看我的例子:
<form action="{{route('statuses.destroy',[$order_status->id_order_status])}}" method="POST">
@method('DELETE')
@csrf
<button type="submit">Delete</button>
</form>
如果您单击一个url,它将始终是一个GET方法。
因为您希望将其定义为DELETE,所以应该将其重新制作为post表单并添加
<input type="hidden" name="_method" value="delete" />
在里面。如替换:
<a href="{{ url('/categories', ['id' => $category->id]) }}">
<button class="btn btn-default">Delete</button>
</a>
与:
<form action="{{ url('/categories', ['id' => $category->id]) }}" method="post">
<input class="btn btn-default" type="submit" value="Delete" />
<input type="hidden" name="_method" value="delete" />
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
PUT请求也是如此。
<form action="{{ url('/categories', ['id' => $category->id]) }}" method="post">
<input class="btn btn-default" type="submit" value="Delete" />
{!! method_field('delete') !!}
{!! csrf_field() !!}
</form>
由于Laravel 5.6仅带有@tag:
<form action="{{ url('/categories', ['id' => $category->id]) }}" method="post">
<input class="btn btn-default" type="submit" value="Delete" />
@method('delete')
@csrf
</form>
在我的React项目中,我有: 没有标题的登录组件 问题:我应该如何构建我的路由器从登录页面开始,当我点击登录时,路由器会把我带到仪表板?
问题内容: 因此,我开始使用Node.js。我在Nodejs.org上与Ryan Dahl一起观看了视频,听说他向网站推荐了Express-js。 我下载了最新版本的Express,并开始编写代码。我在/上有一个完整的静态视图,但是一旦尝试发送参数,就会收到如下错误: 我尝试按照expressjs.com上的指南进行操作,但是在最新版本中,使用路由的方式已更改,这使该指南无法使用。 指南: 由Ex
问题内容: 我正在尝试在Spring MVC控制器(版本3.0.2)中使用和。在Spring控制器类中,有三种与URL映射的方法,如下所示(分别是PUT,GET和POST,仅用于演示目的)。 加载页面时,该方法将很明显地被调用,但是在所有其他情况下(提交页面时),唯一要调用POST的方法是,永远不会调用用指定的方法。 Spring表单仅包含一个提交按钮和一个图像浏览器, 生成的HTML如下, 在我
本文向大家介绍nuxt中使用路由守卫的方法步骤,包括了nuxt中使用路由守卫的方法步骤的使用技巧和注意事项,需要的朋友参考一下 1.在plugins文件下创建一个route.js 2.在nuxt.config.js里面配置 PS:Nuxt在axios请求拦截中使用路由 最近在开发一个网站,用的nuxt搭建的框架,因为需要在请求token过期之后提示用户重新登录并且返回登录页面,但是在axios的配
为了定义辅助路由,我们必须首先添加一个命名的路由出口,其中要呈现辅助路由的内容。 接下来,我们必须定义到应用程序的辅助路由的链接,以导航和呈现内容。 每个辅助路由是独立的路由,可以拥有: 自己的辅助路由 自己的浏览器历史记录栈
将路由链接到参数 显示特定产品详细信息的组件的路由需要该产品ID的路由参数。我们可以使用以下实现: 注意:product-details路由的路径中的 ,它将参数放在路径中。例如,要查看ID为5的产品的产品详细信息页面,必须使用以下URL:localhost:3000/product-details/5 注意,指令传递一个数组,该数组指定路径和路由参数。或者,我们可以使用JS跳转: Product