Php Codeigniter 4错误404表单提交后存在路由问题

Php Codeigniter 4错误404表单提交后存在路由问题,php,codeigniter-4,Php,Codeigniter 4,我正在使用CodeIgniter4 我已经添加了Routes.php $routes->get('/register', 'Auth::register'); 这是Auth.php public function register() { $data['page_title'] = "Register"; if ($this->request->getMethod() === 'post') {

我正在使用CodeIgniter4

我已经添加了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');

您需要在路由中指定方法。因为您使用的是POST,所以应该是:

$routes->post('/register',Auth::register');
您还可以使用多种方法:

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

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

尝试从
/register
中删除“/”并查看是否works@mPareek仍然要从
/寄存器中删除“/”并查看works@mPareek尽管如此,sameI还是注意到有时使用get方法路由post方法表单有时会起作用。有什么解释吗?我注意到有时使用get方法路由post方法表单有时会起作用。有什么解释吗?