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

问题描述

我正在使用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,它应该是:

amt_in_vault = users[str(user.id)]['vault']

您也可以使用多种方法:

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

或者没有方法:

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