我正在CodeIgniter中编写一个帮助程序,我需要在多个控制器中重用它。在帮助程序呈现的视图中加载的初始数据可能会有所不同,具体取决于哪个控制器使用帮助程序。
我正在尝试这个:
$controller = $CI->router->fetch_class();
$init = $CI->$controller->get_initial_data($id);
但是
Call to a member function get_initial_data() on a non-object
当我用以下内容查看变量内容时:
print_r($controller);
我看到了正确控制器的名称。问题似乎与$ CI-> $ controller有关。关于如何将变量用作控制器参考的任何想法?
答案 0 :(得分:0)
尝试使用
$CI->{$controller}->get_initial_data($id);
答案 1 :(得分:0)
您无法从控制器本身的任何位置访问控制器方法。因此,帮助者无法调用get_initial_data
方法。
您要做的是让控制器调用自己的get_initial_data
方法,并将结果作为参数传递给辅助函数。
例如(在您的控制器中):
$data = $this->get_initial_data($id);
my_helper_function($data);