php - 表单提交后 Codeigniter 4 错误 404 路由有问题

标签 php codeigniter-4

我使用 Codeigniter 4

我已经在 Routes.php 中添加了

$routes->get('/register', 'Auth::register');

这是Auth.php

    public function register()
    {
        $data['page_title']   = "Register";
        if ($this->request->getMethod() === 'post') {
            $email = $this->request->getPost('email');
            if ($this->validate([
                'email' => 'required',
                'pwd'  => 'required',
                'repwd' => 'required|matches[pwd]'
            ])) {
                $pwd = $this->request->getPost('pwd');
                $repwd = $this->request->getPost('repwd');
                $ip = $this->request->getIPAddress();
                return redirect()->to('/');
            }
            $data['email'] = $email;
            $this->session->setFlashdata('isFormError', true);
        }

        return view('auth/register', $data);
    }

for view 只是带有 post 方法的简单 html 表单。提交表单后,出现错误:

404 - File Not Found
Controller or its method is not found: \App\Controllers\Register::index

我使用 http://localhost:8080/register 并且还重定向到 http://localhost:8080/register 但它加载 \App\Controllers\Register::index 不是 \App\Controllers\Auth::register

如何解决?可能是我错过了什么或者这是 CI4 错误?

最佳答案

您需要在路由中指定方法。由于您使用的是 POST,因此它应该是:

$routes->post('/register', 'Auth::register');

您还可以使用多种方法:

$routes->match(['get', 'post'], '/register', 'Auth::register');

或者没有方法:

$routes->add('/register', 'Auth::register');

关于php - 表单提交后 Codeigniter 4 错误 404 路由有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63987478/

相关文章:

php - 如何从 Codeigniter 4 中的 url 中删除 public/index.php/

php - 如何在 ci4 路由中传递任意数量的参数?

codeigniter - Codeigniter 4 中的多个类似条件

php - 使用 HTML <label> 标签有困难

php - 如何使用 PHP 生成正确的订单号?

php - MySQL 查询 - 如何以某种方式对结果进行排序

php - 找不到 CodeIgniter 4 类,命名空间有问题

php - 将键数组转换为关联数组

php - 奇怪的 CodeIgniter 上传问题