显然,只有在模型的另一个构造函数中预先加载了非静态数据库的情况下,codeigniter才会在构造函数中加载静态数据库。
我正在使用codeigniter,当我在模型中使用&get_instance
时,它并不总是有效的。有时我可以访问数据库,有时Codeigniter告诉我必须对字符串调用Query方法。
当我尝试时:
self::$db->query($sql);
我的目标是在我的模型类中拥有静态属性db。这是我的代码
class My_Class extends CI_Model
{
public static $db;
public function __construct()
{
parent::__construct();
self::$db=&get_instance()->db;
}
}
为什么在某些控制器中它有效,而在其他控制器中却无效。
为了解决我的问题,我创建了一个数据库模型,我在autoload.php中自动加载。现在它按我想要的方式工作!