0

我正在 codeigniter 中开发一个应用程序,其中包含不同的模块,例如买方、卖方、公众。所有这些模块都使用相同的头文件。我想要在买方、卖方和公共控制器中声明一个全局变量,这样当我加载一个模块的视图时,这个变量应该有助于根据其值为卖方定制部分标头。买方和公共模块也是如此。

我想问在控制器范围内声明变量然后在其视图中使用它的值的方法是什么。我尝试在构造函数中声明和分配它的值,但是在加载视图时出现未定义的变量错误。我也尝试过这种方式:

class Seller extends CI_Controller {

public $pagetype="seller";
public function __construct()
    {
        parent::__construct();
    }

但我仍然得到未定义的变量错误。我可以在加载视图时传递页面类型的值,但我必须为每个视图都这样做,这是不好且麻烦的方式,因为我在每个控制器中有大约 25-30 个视图。

有什么帮助吗?

4

3 回答 3

0

考虑创建自己的课程 - 查看单例或注册表设计模式......但也请阅读:单例有什么不好?

于 2013-10-18T05:45:40.393 回答
0

在您的控制器中,您可以使用它使数据在视图层中全局可用

$this->load->vars($data);

其中 $data 是键 => 值的数组。你可以把它放在你的构造函数或父构造函数中

于 2013-10-18T05:45:43.340 回答
0

您可以将主 CodeIgniter 对象分配给一个变量,然后用于load->get_var($key)获取视图变量。

function something() {
    $ci =& get_instance();
    $myvar = $ci->load->get_var(‘myvar);
}
于 2016-03-12T06:32:52.567 回答