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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
leo

form加上属性method="post"

6年前 评论

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

6年前 评论

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

6年前 评论

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