首页 > 解决方案 > laravel中html形式的更新方法

问题描述

我正在尝试在 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 无消息

我究竟做错了什么?

标签: laravel

解决方案


您需要在用于发布数据时欺骗该方法。由于 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>

推荐阅读