首先是Model类:
class Xxxx_model extends Model
{
function XxxxModel()
{
parent::Model();
$this->load->database();
}
function isInDatabase()
{
// Please ignore the sql query, it's just to show some random sql code with results
11. $result = $this->db->query('SELECT * FROM someTable WHERE ...');
$numberOfRows = $result->num_rows();
...
return $test;
}
}现在是控制器:
function someLogic()
{
$this->load->model('xxxx_Model', 'xxxxModel'); // not necessary to specify
$this->xxxxModel->isInDatabase();
}当我运行这个命令时,我得到了这个错误:
Severity: Notice --> Undefined property: Xxxx_model::$db .../xxxx_model.php line 11我不知道为什么会这样。如果我把db代码放在控制器中,它似乎可以工作,只有在模型中使用这个设置,它才会失败。我无论如何也找不到代码的误区……
发布于 2011-06-21 02:21:06
要添加到atno的答案:
class Xxxx_model extends Model
{
function XxxxModel() //<--- does not match model name Xxxx_model
{
parent::Model();
$this->load->database();
}基本上,您不是在构造类,也不是在父类Model。如果您使用的是PHP5,则可以使用__construct(),否则,无论您在控制器中使用什么别名加载类名,都必须与类名完全匹配。示例:
class Xxxx_model extends Model
{
function __construct()
{
parent::__construct(); // construct the Model class
}
}我可能错了(我已经很久没有使用1.x了),但是如果你构造了模型类,如果你使用的是config/database.php中的默认连接设置,那么就不需要加载数据库了,它应该已经为你加载了。
发布于 2013-02-12 17:54:01
您必须先加载db库。在autoload.php中添加以下代码,
$autoload[‘libraries’] = array(‘database’);发布于 2018-06-07 02:43:28
将库'datatabase‘添加到自动加载。
/application/config/autoload.php
$autoload['libraries'] = array( 'database' );
你可能像我一样开始了新的项目;-)
https://stackoverflow.com/questions/6415488
复制相似问题