为了账号安全,请及时绑定邮箱和手机立即绑定

此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST Laravel 6

此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST Laravel 6

PHP
汪汪一只猫 2022-01-24 10:26:28
我正在使用 Laravel 6 制作编辑表单。显然,这是一个普遍的问题,我在这里查找了如何解决它,我尝试以 5 种方式放置隐藏的 csrf 字段,并且每次运行时都出现相同的错误,所以 IDK 如果这些解决方案已被 Laravel 6 或我弃用我做错了什么。编辑刀片.php<form method="POST" action="/posts/{{$post->edit}}" enctype="multipart/form-data">    <input type="hidden" name="_method" value="PUT">    <input type="hidden" name="_token" value="{{ csrf_token() }}">    <div class="form-group">        <label for="exampleFormControlInput1">Email address</label>        <input type="email" name="email" value="{{ $post->email }}" class="form-control"               id="exampleFormControlInput1">    </div>    <div class="form-group">        <label for="exampleFormControlInput1">Name</label>        <input type="text" name="name" value="{{ $post->name }}" class="form-control"               id="exampleFormControlInput2" placeholder="Name">    </div>    <label for="exampleFormControlInput1">Image</label>    <div class="form-group row">        <div class="col-sm-2">            @if($post->image)                <img class="img-fluid card-img-top" src="/images/{{ $post->image }}"/>            @endif        </div>        <input type="file" name="image" value="{{ $post->image }}"               id="exampleFormControlInput3">    </div>    <button type="submit" class="btn btn-primary">Submit</button></form>PostsController.php    public function edit(Post $post)    {        return view ('posts.edit', compact('post'));    }    /**     * Update the specified resource in storage.     *     * @param  \Illuminate\Http\Request  $request     * @param  int  $id     * @return \Illuminate\Http\Response     */我的路线,以防万一Route::resource('posts', 'PostsController');这些是我尝试编写 csrf 字段的其他方式。方式一:{{ csrf_field() }}<input type="hidden" name="_method" value="PUT">方式二:@csrf_field{{ method_field('PUT') }}方式3:@csrf{{ method_field('PATCH') }}方式四:@csrf@method('PUT')所有这些都导致我收到相同的错误消息。
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

尝试替换这个:

<form method="POST" action="/posts/{{$post->edit}}"

有了这个 :

<form method="POST" action="{{ route('posts.update', [$post->id]) }}"

我认为您正在尝试在没有任何参数的情况下在 /posts/ 路由上发布,因为 $post->edit 可能不会返回帖子的 id :)


查看完整回答
反对 回复 2022-01-24
  • 1 回答
  • 0 关注
  • 243 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信