0

我刚刚开始学习 Code Igniter,几乎马上就遇到了问题。

使用下面的代码和具有正确权限的数据库设置,我收到 500 错误(服务器错误)。CI 没有抛出错误,我看不出这段代码有什么问题。

我正在使用最新版本的 CI 并测试此代码:

控制器: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 会引发错误。模型或其加载存在某种问题。

4

3 回答 3

2

您有冲突的类名,modell 和控制器类都称为Products.

于 2013-04-03T21:23:01.163 回答
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;
    }
}
}
于 2013-04-03T21:27:22.833 回答
0

一个好的约定是将控制器命名为 ProductsController,然后保留模型 Products。所以所有的控制器都是SomethingController。

例子:

class ProductsController extends CI_Controller

文件名变成 products_controller.php

模型仍然:

class Products extends CI_model

并且仍然是 products.php

现在你的代码应该可以工作了。

于 2013-04-03T21:26:08.563 回答