我正在为基于CodeIgniter的网站加载模型,但它一直出错:
"Fatal error: Call to a member function on a non-object in /nfs/c02/h05/mnt/30796/domains/planetchustar.com/html/arguit/system/application/controllers/home.php on line 8"
以下是其引用的代码部分:
function index()
{
$this->load->model('posts'); //error here
$result = $this->Posts->get_all_topics();
}
该模型名为“帖子”,其文件名为“posts.php”。
编辑: 我发现了我的一个问题,那就是在我尝试使用它的函数之前我没有加载到数据库,所以我修复了它,但现在却说:
A Database Error Occurred
Unable to connect to your database server using the provided settings.
但我确定我在database.php文件中保存的连接信息是准确的(来自phpmyadin网站)。
答案 0 :(得分:1)
'posts'是否在子目录中?如果是这样,那么您需要在加载期间引用子目录。
如果不是那样,那么here就是一个可能有用的帖子。
答案 1 :(得分:0)
我同意@arthur。确保您没有尝试将控制器嵌入另一个控制器中。
答案 2 :(得分:0)
这是区分大小写错误....
像这样使用它:
function index()
{
$this->load->model('posts'); //error here
$result = $this->posts->get_all_topics();//<-- Notice "posts" and not "Posts"
}
答案 3 :(得分:0)
这意味着$ this-&gt; load不是对象引用(很可能是null)。为什么一旦你知道这一点就很容易确定。
答案 4 :(得分:0)
在这种情况下,codeigniter用户指南有点难以理解。只有文件名应为小写,“加载”和调用($ this-&gt; Posts-&gt; etc())应与模型文件中的声明匹配。
这绝对是一个区分大小写的问题。