【发布时间】:2013-11-18 13:26:55
【问题描述】:
我是 CI 新手。只是想知道我哪里出错了。似乎我无法连接到我的数据库。所以我尝试在控制器中加载数据库,只是为了看看它是否可以连接并且我可以进行查询。我确实配置了database.php 并设置了所有内容。但它显示为这样。
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Blog::$db
Filename: controllers/blog.php
控制器/blog.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Blog extends CI_Controller {
public function index() {
$this->load->model("blogmodel");
$articles = $this->blogmodel->get_articles_list();
echo $articles;
}
}
blogmodel.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Blogmodel extends CI_Model {
function get_articles_list() {
$list = $this->db->query("SELECT * FROM foo");
return $list;
}
}
希望你能帮助我。谢谢。
【问题讨论】:
-
我没有看到您的模型负载,并且您对使用 MVC 结构的理解有误。查询时,您应该将所有语法放入模型中
-
我没有使用任何模型。在我的代码前面,我确实使用 load() 来加载我的模型。但似乎有什么不对劲。我只是想尝试如何使用查询从数据库中获取数据。
-
您是否尝试将标准构造函数添加到博客类?
-
然后你需要调用 CI_Model 的构造函数,但是这个设置会破坏 CI 的目的。你应该练习分离控制器和模型或者只使用纯 PHP
-
Drixson 关于模型中数据库交互的一般 MVC 实践是正确的,但 CI 并不关心这一点。如果您已经加载了 db 模型,它应该可以在控制器中工作,即使它并不漂亮。问题是 - 您此时是否已自动加载数据库?如果没有在您的类中定义 __construct() 方法,它可能不会继承任何自动加载模型的属性。
标签: php codeigniter