我将这段代码放在模型类的构造函数中,基于CI的教程,它声明如果你把它放在那里,那么数据库连接可以在那个类中在全局范围内使用。由于某些原因,它不起作用,应用程序在代码的那部分崩溃。我的数据库配置没问题,因为当我把它放在控制器中时,我能够很好地获取数据库信息。
1
A
回答
1
你不需要初始化。好喜欢这个
$autoload['libraries'] = array('database');
0
的代码行它配置到
application - config - autoload.php
文件来加载数据库对象是:
$this->load->database();
数据库对象,然后用名称DB像这样引用:
$this->db->method_name();
正如前一篇文章指出的那样,如果要在多个模型中使用数据库,y ou应该在autoload.php配置文件中自动加载库。
0
你是在父类的构造函数之前还是之后这样做?
public function __construct()
{
// placing it here fails: $this has no `load` property yet.
// $this->load->database(); <!-- NO WAY JOSÉ!
parent::__construct();
// placing it here should work as the parent class has added that property
// during it's own constructor
$this->load->database();
}
在另一方面,你可能会更加明确:
public function __construct()
{
// Doesn't matter where this goes:
// grab the controller directly
$CI =& get_instance(); // & is not strictly necessary, but still...
// force the loader to load the database.
$CI->load->database();
// directly assign it.
$this->db = $CI->db;
// continue on your merry way
parent::__construct();
}
我认为明确的解决方案解决了许多问题在PHP 4项目一次,但它在技术上是矫枉过正。
相关问题
- 1. 类的构造函数初始化?
- 2. 初始化类的构造函数
- 3. DB在构造函数中的动态初始化
- 4. 在构造函数中初始化
- 5. 在构造函数中初始化ArrayList
- 6. 初始化在定义与初始化在构造函数中
- 7. 在类构造函数中初始化类成员数组?
- 8. 在类的构造函数中初始化std ::类的数组
- 9. 在C++中的类构造函数中初始化列表初始化
- 10. 在类构造函数中初始化结构体
- 11. 构造函数中的初始化块
- 12. 在派生类的构造函数中初始化超类
- 13. 在其他类构造函数中初始化类对象
- 14. 在构造函数中初始化类常量在PHP中
- 15. 初始化结构数组在类的构造函数C++
- 16. 初始化的声明VS在构造函数初始化
- 17. 初始化主构造函数中的子类 - 主构造函数体与子类构造函数体
- 18. 如何初始化类构造函数列表中的结构?
- 19. 用初始化器列表中的空构造函数初始化父类?
- 20. 使用Castle Windsor在服务类的构造函数中初始化具有参数化构造函数的类
- 21. 如何在C++中初始化嵌套类的构造函数
- 22. 在自己的构造函数中初始化一个新类
- 23. 科特林:初始化类属性在构造函数中
- 24. 在类构造函数中初始化成员
- 25. Java构造函数初始化?
- 26. 初始化构造函数C++
- 27. 创建构造函数初始化
- 28. C++模板构造函数初始化
- 29. 构造函数初始化混淆
- 30. c#构造函数与初始化
请澄清并清理您的问题。 – 2011-07-12 16:38:36
对于谁投票结束这件事,因为这不是一个真正的问题,我向你保证,这是一个有价值的问题。 – cwallenpoole
如果没有解决方案适用于您,请注意,当我修改了我的配置项安装以允许在Eclipse中自动完成时,我的db启动失败。 –