我正在尝试使用laravel中的html表单更新输入:
<form action="{!! route('users.update',['id' => $users->id]) !!}" method="post">
<div class="form-group row">
<label for="colFormLabelLg" class="col-sm-3 col-form-label col-form-label-lg">customer_name</label>
<div class="col-sm-10">
<input value="{{$name}}" class="form-control form-control-lg" placeholder="col-form-label-lg">
</div>
<button type="submit" class="btn btn-primary btn-lg" > Edit</button>
</form>
控制器中的所有功能均正常运行,但是在视图页面中我收到此错误:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException 没有消息
我在做什么错了?
答案 0 :(得分:0)
请以POST
的形式更正您的路线,
Route::post('update/{id}', 'YourController@update')->name('users.update');
答案 1 :(得分:0)
您需要在发布数据时欺骗该方法。由于HTML表单无法发出PUT, PATCH, or DELETE
请求,因此您需要添加一个隐藏的_method字段来欺骗这些HTTP动词。 @method Blade指令可以像这样为您创建此字段:
<form action="/foo/bar" method="POST">
@method('PUT') //add this to your form
</form>
或
<form action="/foo/bar" method="POST">
{{ method_field('patch')}} //add this to your form
</form>
答案 2 :(得分:0)
您需要在表单视图中放入@csrf
和@method('PATCH')
。
答案 3 :(得分:0)
我遇到了同样的问题,并且在代码中添加了几行后就可以使用它了:
您的代码应如下所示:
<form action="{!! route('users.update', $users->id) !!}" method="post">
@csrf
<!--Some fields-->
@method('PUT')
</form>