问题描述
我正在使用Codeigniter 4
$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
解决方法
您需要在路由中指定方法。由于您使用的是 POST,它应该是:
amt_in_vault = users[str(user.id)]['vault']
您也可以使用多种方法:
$routes->post('/register','Auth::register');
或者没有方法:
$routes->match(['get','post'],'/register','Auth::register');