Dav*_*rth 2 codeigniter codeigniter-2
我有一个问题,使用CodeIgniter连接到数据库.
在模型中,如果我这样做
$this->load->database();
Run Code Online (Sandbox Code Playgroud)
然后查询如
$query = $this->db->get('articles', 10);
Run Code Online (Sandbox Code Playgroud)
工作并返回数据.但是,当我删除load-> database行并尝试使用自动加载数据库库时
$autoload['libraries'] = array('database');
Run Code Online (Sandbox Code Playgroud)
在application/config/autoload.php中,上面的查询失败.因为它在我显式加载库时起作用,所以我的数据库连接不是问题.我正在使用CodeIgniter 2.0.2(当前的最新版本).
由于我的大多数页面都使用数据库,我想自动加载它以避免在每个模型中逐个加载它.我是否误解了有关加载数据库库的文档或我做错了什么?
我知道我可能只是在回答一个死的问题,但我遇到了同样的问题.
如果您正在使用eclipse pdt或类似的IDE并通过在构造函数之前添加一些变量来修改系统> core> model.php以获得代码完成,那么自动加载不起作用
我不知道为什么,但事实是它不起作用.我将核心> model.php恢复为原始版本,自动加载工作正常.我现在不接受自动加载,对于CI的新编码器来说,这真的是一个糟糕的经历.
如果您有解决方法,请评论.
如果您仍然无法解决问题,这只是一个替代方案。只需扩展 CI_Model 并在构造函数中自动加载数据库即可。然后你可以让所有其他模型继承该基类。
例子:
<?php
class My_Model extends CI_Model{
public function __construct(){
parent::__construct();
$this->load->database();
}
}
Run Code Online (Sandbox Code Playgroud)
所有其他人都会像这样开始:
<?php
class Some_Model extends MY_Model{}
Run Code Online (Sandbox Code Playgroud)
此方法还有另一个好处,即您不必在创建的每个模型中都包含加载代码行。您还可以轻松地将模型之间的共享功能推送到父 MY_Model 类中。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
37365 次 |
| 最近记录: |