我使用 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/