Php Codeigniter 4错误404表单提交后存在路由问题
我正在使用CodeIgniter4 我已经添加了Routes.phpPhp 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') {
$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方法表单有时会起作用。有什么解释吗?