如何在Codeigniter的另一个文件中使用$ this?

时间:2019-06-01 18:35:40

标签: codeigniter

我的视图中有一个名为fn.php的文件,然后创建了一个函数来发布数据,就像这样

function post($input_name){
   return $this->input->post($input_name);
}

在我的控制器中,我这样称呼它,

public function myFunc(){
   $this->input->load('fn.php');
   // then I use the function that I have created like this
   post('myinputname');
}

但是...我遇到了错误,如何解决此问题?非常感谢

1 个答案:

答案 0 :(得分:0)

您应该花一些时间来尝试了解MVC架构。毕竟,这是使用框架的要点之一。

您不能将函数放在视图中,并且期望以某种方式加载它们并访问它们。您可以将函数放入模型,控制器,库或帮助器中。在您的情况下,我会建议一个助手:

application/helpers/some_file_helper.php

function post($input_name){
   $CI = &get_instance();
   return $CI->input->post($input_name);
}

get_instance()部分仅在$this(CI上下文)不可用时使用。 这仅在助手和库中发生。在视图,控制器和模型中$this始终可用。

模型或控制器:

$this->load->helper('some_file');

print_r(post('somevar'));

但是,如果您只想访问post变量,请直接使用$this->input->post('somevar')并且不要引入额外的层。