【问题标题】:error: The POST method is not supported for this route. Supported methods: GET, HEAD. - using laravel livewire错误:此路由不支持 POST 方法。支持的方法:GET、HEAD。 - 使用 laravel livewire
【发布时间】:2021-09-25 07:52:11
【问题描述】:

我正在尝试使用 Laravel livewire 进行图像上传,但是当我单击“上传”按钮以测试功能时,会出现此错误

此路由不支持 POST 方法。支持的方法:GET、HEAD'

节目:

路线

Route::get('/upload', UploadFoto::class)->name('upload.foto.user');

CONTROLLER(使用 dd 进行测试)

<?php

namespace App\Http\Livewire\User;

use Livewire\Component;

class UploadFoto extends Component
{
    public $foto;
    
    public function render()
    {
        return view('livewire.user.upload-foto');
    }

    public function storageFoto()
    {
        dd('aqui');
    }
}

查看 @extends('layouts.app')

@section('content')


<div>
    {{-- To attain knowledge, add things every day; To attain wisdom, subtract things every day. --}}

    <form action="#" method="post">
        <input type="file" name="foto" id="foto" wire:submit.prevent="storageFoto">
        <button type="submit">Upload</button>
</form>

</div>
@endsection

【问题讨论】:

  • 将您的路由定义更改为 POST,对于表单操作,请使用命名参数,如 &lt;form action="{{route('upload.foto.user')}}" method="post"&gt;。您可能会将请求发送到另一个地方!
  • 我更改了 "
    " 和路线,但对我不起作用。出现同样的错误。我还能改变什么?

标签: php laravel laravel-8 laravel-routing laravel-livewire


【解决方案1】:

您在这条路线上设置了 get 方法 - 但上传使用 post 方法。改变它:

Route::post('/upload', UploadFoto::class)->name('upload.foto.user');

【讨论】:

  • 也许是因为你有 dd() 函数在起作用?)
  • 那我可以改变什么?
【解决方案2】:

将路由方法改为 Post

Route::post('/upload', UploadFoto::class)-&gt;name('upload.foto.user');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2020-04-19
    • 2021-05-08
    • 2020-01-22
    • 2020-04-25
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多