laravel 不支持 put 方法
Posted
技术标签:
【中文标题】laravel 不支持 put 方法【英文标题】:put method not supported in laravel 【发布时间】:2020-09-23 07:14:56 【问题描述】:我尝试使用编辑路由更新帖子,但是当我发送表单并使用更新功能时,给我一个错误
我的代码是
<form action="/posts$posts->id" method="POST">
@method('PUT')
@csrf
<label for="">title</label>
<input type="text" name="title" class="form-control" >
<label for="">body</label>
<textarea type="text" name="body" class="form-control">$post->body</textarea>
<input type="submit" class="btn btn-primary" value="edit">
【问题讨论】:
分享你的路线 php 工匠路线:列表 您需要将路由定义为Route::put('posts/id', ...)
以使其响应PUT
请求
我正在使用相同的更新路线
如果你使用资源控制器路由,你应该使用action=" route('posts.update', [ 'post' => $posts->id ])) "
来确保你得到正确的路由
【参考方案1】:
我把我在 laravel 文档上找到的隐藏方法放了,效果很好
<form action="/posts/$post->id" method="POST">
@csrf
<label for="">title</label>
<input type="text" name="title" class="form-control" >
<label for="">body</label>
<textarea type="text" name="body" class="form-control">$post->body.
</textarea>
<input type="submit" class="btn btn-primary" value="edit">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value=" csrf_token() ">
</form>
【讨论】:
【参考方案2】:您可以执行以下操作:
<form action=" route('route.name', $post->id) " method="POST">
@csrf
<label for="">title</label>
<input type="text" name="title" class="form-control" >
<label for="">body</label>
<textarea type="text" name="body" class="form-control">$post->body</textarea>
<input type="submit" class="btn btn-primary" value="edit">
对于路线:
Route::post('/posts/id', 'Controller@function')->name('route.name');
【讨论】:
【参考方案3】:你必须这样使用
<form action="url('')/posts/$post->id" method="POST">
@csrf
<label for="">title</label>
<input type="text" name="title" class="form-control" >
<label for="">body</label>
<textarea type="text" name="body" class="form-control">$post->body</textarea>
<input type="submit" class="btn btn-primary" value="edit">
在你的路线中这样使用
Route::post('/posts/id', ...)
【讨论】:
为什么在/posts/ $post->id
之前需要url('')
?
@TalhaF。这不是强制性的。但写action method
或href method
也是一种方法。【参考方案4】:
您的操作中缺少 /
action="/posts/ $posts->id "
【讨论】:
以上是关于laravel 不支持 put 方法的主要内容,如果未能解决你的问题,请参考以下文章
此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST。在 laravel 中
laravel向我显示此错误此路由不支持POST方法。支持的方法:GET,HEAD,PUT,DELETE
此路由不支持 GET 方法。支持的方法:PUT。与放置形式。拉拉维尔