我有一个类别页面,并创建一个删除按钮,以删除它的类别,图像如下:
因此,问题是显示"MethodNotAllowedHttpException“
好的。这是路线文件
Route::delete('removeCategory/{id}','AdminController@removeCategory');
控制器文件
public function removeCategory(Request $id){
$cats = cats::find($id);
$cats->delete();
}
和查看文件
@foreach($data as $product)
<tr style="height:50px">
<td style="padding:10px">{{$product->cat_name}}</td>
<td><a class="btn btn-sm btn-fill btn-primary"
href="{{url('/admin/editCategory')}}/{{$product->id}}">Edit</a></td>
<td><a href="{{url('admin/removeCategory')}}/{{$product->id}}" onclick="return confirm('Are you sure?')"
class="btn btn-sm btn-fill btn-primary">Remove</a></td>
</tr>
@endforeach
感谢任何人分享信息给我,我已经尝试过了,但显示给我这个错误消息。
4条答案
按热度按时间smdncfj31#
既然你想做它而不复杂的代码与 AJAX ,
解决方案是简单地发送
POST
请求并将DELETE
方法定义为隐藏字段。为简单起见,您可以使用method_field helper添加该字段:
并确保删除对象后返回列表:
**UPD.:**此答案可能有点过时,新版本的Laravel可能会删除Form类。如果您看到:
Class "Form" not found
安装laravelcollective\html
软件包或删除
Form::token()
或替换为:此处描述的
csrf_token
9lowa7mx2#
MethodNotAllowedHttpException
告诉我们,我们尝试使用该端点不支持的http方法类型请求服务器。例如,您尝试在只允许DELETE
的url上执行GET
请求。https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
dgenwo3n3#
尝试编辑您的路线到:第一个月
然后将控制器编辑为:
这是上面提供的答案的另一种选择,尽管我会建议坚持num8er提供的答案。
hi3rlvi24#
1.你必须提交一个DELETE请求,看看num8er的回答,你不必通过表单来完成,你可以通过 AJAX 来完成,但是仅仅使用
<a href
就会导致一个GET请求。1.您还在controller方法中提示
$id
作为Request对象。因此,Laravel将为您提供一个Request对象,而不是作为URL中的参数传递的数字。您需要删除该参数上的类型提示,或使用实际适合的类型: