0

如果我在 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 中似乎最合乎逻辑,我只是​​不确定如何使用表单助手类访问它。有什么建议么?

4

3 回答 3

2

由于您放置login()在内部MY_Controller和扩展CI_Controller中,因此每个控制器都会获得该方法。然后,您可以使用$this->router->fetch_class();获取当前控制器的名称,并将其附加到/login.

前任。

var $controller = $this->router->fetch_class();
echo form_open($controller.'/login');
于 2013-06-13T12:34:58.433 回答
0

添加两个库-

 $this->load->helper('form');
 $this->load->library('form_validation');

在你的控制器构造函数中并添加这个

echo form_open('MY_Controller/login');

在视野中

于 2013-06-13T12:34:46.347 回答
0

您可以访问喜欢login()的功能MY_Controller

form_open('default_controller_name/login');

如果你的没有 login()功能default_controller

于 2013-06-13T12:35:54.777 回答