如果我在MY_Controller中有一个处理表单的回调函数:
class MY_Controller extends CI_Controller{
function login(){
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run() == true){
//do something
}
}
}
我应该如何在视图中使用表单助手来引用它?
echo form_open('?/login');
这背后的原因是我们在头模板中有一个登录表单,它没有相应的控制器,它在每个视图之前加载。如果设置了会话数据,我们用JS隐藏登录表单,所以将回调放在MY_Controller中似乎最合乎逻辑,我只是不确定如何使用表单助手类访问它。有什么建议?
答案 0 :(得分:2)
由于您将login()
放在MY_Controller
内并扩展CI_Controller
,因此每个控制器都会获得该方法。然后,您可以使用$this->router->fetch_class();
获取当前控制器的名称,并将其附加到/login
之前。
实施例。
var $controller = $this->router->fetch_class();
echo form_open($controller.'/login');
答案 1 :(得分:0)
添加两个库 -
$this->load->helper('form');
$this->load->library('form_validation');
在控制器构造函数中并添加此
echo form_open('MY_Controller/login');
在视图中
答案 2 :(得分:0)
您可以访问login()
的{{1}}功能
MY_Controller
如果form_open('default_controller_name/login');
login()
功能