【问题标题】:Laravel Livewire The POST method is not supported for this routeLaravel Livewire 此路由不支持 POST 方法
【发布时间】:2021-03-09 13:02:38
【问题描述】:

我一插入这个标题,系统就向我显示了所有类似的问题,但没有一个能帮助我。无论我尝试什么,我都会收到此错误“此路由不支持 POST 方法。”。更糟糕的是,我是否已经制作了另一个具有相同逻辑的组件,并且效果很好。

以下是路线:(teeoffform 有效,公告无效)

Route::get('/bulletin', function () {
    return view('bulletin');
   });
Route::get('/teeoffform', function () {
    return view('teeoffform');
});

这是表单标签:两个相同的一个有效一个不工作

<form wire:submit.prevent="submit" method="POST">

这是我的一个不起作用的组件(公告) 与另一个有效的唯一区别是没有渲染方法,所以我试着把它拿出来看看是否是问题所在,但没有运气......我想,因为我的路线已经调用了查看可能存在冲突...但这没关系,无论如何我都会收到错误消息,而且我没有想法。

<?php

namespace App\Http\Livewire;

use Illuminate\Support\Facades\Auth;
use Livewire\Component;
use App\Models\Bulletins;
use App\Models\User;


class Bulletin extends Component
{
            public $title;
            public $message;
            public $messagesending;
            public $user_email;
            public $userTable_email;
            public $expires;
            public $success_message;
            protected $rules = [
                'title' => 'required',
                'message' => 'required',
                'user_email' => 'required',
                'expires' => 'required',
            ];

    public function render()
    {
        return view('livewire.bulletin', ['email_data' => User::orderBy('email','asc')->get()]);
    }

    public function submit()
    {
        $this->validate();

        $sendMessage = new Bulletins;
        $sendMessage->title = $this->title;
        $sendMessage->message = $this->messagesending;
        $sendMessage->user_email = $this->user_email;
        $sendMessage->expires = $this->expires;
        $sendMessage->save();

        $this->success_message = 'Message Sent Successfully';
    }

}

我真的不明白...我找了 4 个小时现在为什么会发生这种情况。

【问题讨论】:

  • 查看 devtools 的网络选项卡,看看哪个请求出错以及响应是什么。
  • HTML 的其余部分是什么样的?为什么要使用表单?
  • 我遇到了同样的问题,对我来说,我必须添加wire:submit.prevent="createStuff",以防止默认行为,希望对您有所帮助

标签: laravel laravel-livewire livewires


【解决方案1】:

我也遇到了这个问题,发现我的应用布局刀片文件中没有包含 Livewire 样式和脚本。

@livewireStyles @livewireScripts

【讨论】:

    【解决方案2】:

    我发现了不同之处,不是代码的逻辑,而是我运行它的地方。如果我从 (localhost/bulletin) 进行测试,我会收到该错误。如果我将组件包含在仪表板 (localhost/home) 中并从那里运行它,那么一切正常......

    这是为什么呢?我没有登录就无法访问(localhost/bulletin),所以我登录了。

    【讨论】:

      猜你喜欢
      • 2021-07-19
      • 2021-01-23
      • 2020-12-05
      • 2021-09-25
      • 1970-01-01
      • 2021-04-11
      • 2021-08-05
      • 2020-06-05
      • 2020-03-21
      相关资源
      最近更新 更多