CI框架的一个问题
程序员文章站
2022-06-09 22:29:39
...
比如现在有一个 login 方法,是用来输出 login 视图
public function login()
{
$this->load->view('login');
}
此时的登陆页面是 index/login
。
然后提交表单数据到 login_check()
方法
public function login_check()
{
$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'password', 'trim|required');
if ($this->form_validation->run() === true) {
//.....
}else{
$this->load->view('login');
}
}
$this->form_validation->run()
表单校验失败,再次输出 login 视图,同时显示提示错误。
那么此时登陆页面地址 index/login_check
。
这个感觉太不好了,不希望链接地址变化。除了将 login()
和 login_check()
合并处理可以实现之外,还有什么更好的办法吗?
请多指教,谢谢大家。
回复内容:
比如现在有一个 login 方法,是用来输出 login 视图
public function login()
{
$this->load->view('login');
}
此时的登陆页面是 index/login
。
然后提交表单数据到 login_check()
方法
public function login_check()
{
$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'password', 'trim|required');
if ($this->form_validation->run() === true) {
//.....
}else{
$this->load->view('login');
}
}
$this->form_validation->run()
表单校验失败,再次输出 login 视图,同时显示提示错误。
那么此时登陆页面地址 index/login_check
。
这个感觉太不好了,不希望链接地址变化。除了将 login()
和 login_check()
合并处理可以实现之外,还有什么更好的办法吗?
请多指教,谢谢大家。
你用ajax提交表单就好了, 这样不会导致页面跳转到login_check
验证失败就跳转到login?error=err_code
CI里面使用redirect('index/login')
这个函数进行跳转
在你的else
里使用
想优雅的解决这个问题,需要用到路由,
判断 http
动词,映射到相应方法即可
推荐阅读