Laravel5.5 API 路由中关于 csrf_field 和伪造表单请求 method_field 的问题?

目前我在搭建一个博客后台的过程中,在后台的用户修改模块遇到了一个表单验证和伪造表单方法的问题。
先贴代码

<form role="form" class="form col-md-4 col-md-offset-4" action="/api/user/{{ $user->id }}">
    {{ csrf_field() }}
    {{ method_field('PATCH') }}
    <div class="form-group text-center">
        @if(!empty($user->avatar))
            <img src="{{ $user->avatar }}" id="avatar" width="100" class="img-circle" alt="{{ $user->name }}">
        @else
            <img src="/images/default.png" id="avatar" width="100" class="img-circle" alt="{{ $user->name }}">
        @endif
    </div>
    <div class="form-group">
        <label for="name">用户名</label>
        <input type="text" id="name" placeholder="用户名" value="{{ $user->name }}" class="form-control" disabled="disabled">
    </div>
    <div class="form-group">
        <label for="email">邮箱</label>
        <input type="email" id="email" placeholder="邮箱" value="{{ $user->email }}" class="form-control">
    </div>
    <div class="form-group">
        <label for="nickname">昵称</label>
        <input type="text" id="nickname" placeholder="昵称" value="{{ $user->nickname }}" class="form-control">
    </div>
    <div class="form-group">
        <label for="website">网站地址</label>
        <input type="text" id="website" placeholder="网站地址" value="{{ $user->website }}" class="form-control">
    </div>
    <div class="form-group">
        <label for="description">描述</label>
        <input type="text" id="description" placeholder="描述" value="{{ $user->description }}" class="form-control">
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-success">修改</button>
    </div>
</form>

资源路由 Route::resource('user', 'UserController')->except(['show', 'create']);

然后当我提交的时候,表单变成了GET方法提交,提交的URL变成了
http://tyu.com/api/user/1?_token=V7JlSVigwVwX3JziZf9bn2MrmrenzeunT7RDn6h9&_method=PATCH

再此,望各位大佬,遇到过这个情况以及了解如何解决这个问题的,帮帮忙。感激不尽!

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3
leo

form加上属性method="post"

6年前 评论

@leo 最开始,我貌似是加上了,method=“post”属性的,但是似乎是一样的结果。回头我再试试,或许是我记错了,谢谢~

6年前 评论

@leo 谢谢啊~ 加上method="post" 就好了!文档白看了,哎

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!