Php Codeigniter在form helper中引用MY_控制器
如果我的_控制器中有一个处理表单的回调函数:Php Codeigniter在form helper中引用MY_控制器,php,html,forms,codeigniter,Php,Html,Forms,Codeigniter,如果我的_控制器中有一个处理表单的回调函数: class MY_Controller extends CI_Controller{ function login(){ $this->form_validation->set_rules('username', 'Username', 'required'); $this->form_validation->set_rules('password', 'Password', 'req
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隐藏登录表单,因此将回调放在我的_控制器中似乎是最合乎逻辑的,我只是不确定如何使用form helper类访问它。有什么建议吗 添加两个库-
$this->load->helper('form');
$this->load->library('form_validation');
在控制器构造函数中添加
echo form_open('MY_Controller/login');
在视图中由于您将
login()
放置在MY\u控制器
内部并扩展CI\u控制器
,因此每个控制器都获得该方法。然后,您可以使用$this->router->fetch_class()
获取当前控制器的名称,并将其附加到/login
之前
前
您可以访问myu控制器的login()
功能
form_open('default_controller_name/login');
如果您的默认\u控制器中没有login()
函数窗体打开(“我的\u控制器/登录”)
什么是您的默认\u控制器
名称??非常好,我喜欢这样,因为使用我的\u控制器至少可以说不是很好的restful uri设计。这样,登录函数总是在上下文中,确切地说。
form_open('default_controller_name/login');