尝试删除项目时出现此错误。
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException no message
以下删除项目的途径。
web.php
Route::delete('projects/{project}',['uses'=>'ProjectsController@destroy','as'=>'projects.destroy']);
ProjectsController.php
public function destroy($id){
Project::query()->findOrFail($id)->delete;
return back();
}
_card.blade.php
<div class="col-3 my-3">
<div class="card project-card">
<ul class="icon-bar">
<li>
{!! Form::open(['route'=>['projects.destroy',$project->id],'method'=>'DELETE']) !!}
<button type="submit" class="btn btn-default">
<i class="fa fa-btn fa-times"></i>
</button>
{!! Form::close() !!}
</li>
<li><i class="fa fa-btn fa-cog"></i></li>
</ul>
<a href="projects/{{ $project->id }}">
<img class="card-img-top" src="{{ asset('storage/thumbs/original/'.$project->thumbnail) }}"
alt="Card image cap">
</a>
<div class="card-body py-3">
<a href="projects/{{ $project->id }}">
<h6 class="card-title text-center">{{ $project->name }}</h6>
</a>
</div>
</div>
您好,请检查HTML输出。谢谢!您好,请检查HTML输出。谢谢!
答案 0 :(得分:0)
您不能以DELETE
和GET
形式进行POST
请求。可以在ajax请求中使用其他方法。
将方法更改为路线中的POST
和表格即可。
答案 1 :(得分:0)
https://laravel.com/docs/5.7/routing#form-method-spoofing
HTML表单不支持
PUT
,PATCH
或DELETE
操作。因此,在定义从HTML表单调用的PUT
,PATCH
或DELETE
路由时,您需要向表单添加一个隐藏的_method
字段。通过_method
字段发送的值将用作HTTP请求方法:
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="DELETE">
</form>
您的'method'=>'DELETE'
应该会生成此值,但是Laravel Collective文档在示例中显示了小写的method
值-这可能是一个问题。检查_method
字段的生成HTML。