Php 在CodeIgniter中使用变量控制器名称

Php 在CodeIgniter中使用变量控制器名称,php,codeigniter,Php,Codeigniter,我正在用CodeIgniter编写一个助手,我需要在几个控制器中重用它。由辅助对象渲染的视图中加载的初始数据可能会因使用辅助对象的控制器而异 我正在尝试这个: $controller = $CI->router->fetch_class(); $init = $CI->$controller->get_initial_data($id); 但是 Call to a member function get_initial_data() on a n

我正在用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上。关于如何使用变量作为控制器参考,有什么想法吗?

尝试使用


$CI->{$controller}->获取初始数据($id)

除了从控制器本身内部之外,您不能从任何其他地方访问控制器方法。因此,助手无法调用
get\u initial\u data
方法

您要做的是让控制器调用自己的
get_initial_data
方法,并将结果作为参数传递给helper函数

例如(在控制器中):


您正在尝试访问控制器的方法?您不能在控制器本身之外执行此操作。因此,如果我理解正确,您希望助手调用调用它的控制器的
get\u initial\u data
方法?你不能真的那样做。为什么不让控制器调用自己的
get_initial_data
方法,并将结果作为参数发送给helper函数?谢谢。卡尔·马卡姆的建议不起作用,但这确实起了作用。谢谢你的快速回复。
$data = $this->get_initial_data($id);
my_helper_function($data);