在CodeIgniter中使用变量控制器名


Using variable controller name in CodeIgniter

我正在CodeIgniter中编写一个需要在多个控制器中重用的helper。由helper呈现的视图中加载的初始数据可以根据哪个控制器使用helper而变化。

I'm trying this:

    $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->$控制器。关于我如何使用变量作为控制器参考的任何想法?

你不能从其他任何地方访问控制器方法,只能从控制器本身内部。因此,helper无法调用get_initial_data方法。

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

例如(在你的控制器中):

$data = $this->get_initial_data($id);
my_helper_function($data);

尝试使用

$CI->{$controller}->get_initial_data($id);