我刚刚开始学习Code Igniter,我几乎马上就遇到了问题。
使用下面的代码和具有正确权限的数据库设置我得到500错误(服务器错误)。 CI没有抛出错误,我看不出这个代码有什么问题。
我正在使用最新版本的CI并测试此代码:
Controller:products.php
class Products extends CI_Controller {
public function index() {
$this->load->model('products');
$this->load->view('products');
}
}
型号:products.php
class Products extends CI_Model {
function __construct() {
parent::__construct();
}
function get_products() {
$q = $this->db->get('product');
if($q->num_rows() > 0) {
foreach ($q->result() as $row) {
$data[] = $row;
}
return $data;
}
}
}
我已经将这些类放在他们应该使用的目录中,并且使用与该类同名的文件名....如果我在控制器中注释掉加载模型代码,则会显示我的视图。我的数据库连接是正确的,因为如果我将它们更改为不正确的CI会引发错误。模型或加载模型存在某种问题。
答案 0 :(得分:2)
您有类名称冲突,模式和控制器类都称为Products
。
答案 1 :(得分:1)
试试这个:
类产品扩展了CI_Controller {
public function index() {
$this->load->model('products_model','products');
$this->load->view('products');
}
}
型号:products_model.php
class Products extends CI_Model {
function __construct() {
parent::__construct();
}
function get_products() {
$q = $this->db->get('product');
if($q->num_rows() > 0) {
foreach ($q->result() as $row) {
$data[] = $row;
}
return $data;
}
}
}
答案 2 :(得分:0)
使用的一个好习惯是命名控制器ProductsController,然后保留模型Products。所以所有控制器都是SomethingController。
示例:
class ProductsController extends CI_Controller
其中文件名为products_controller.php
并且模型仍然存在:
class Products extends CI_model
并且仍然是products.php
现在你的代码应该可以工作了。